Selenium WebDriver偶尔抛出Timeoutexception

在我们的项目中使用selenium进行UItesting。 我们正在运行最新的版本2.30.0。 我们使用Firefox WebDriver并运行Firefox 19.0。 一般来说,当我在Visual Studio中运行uitesting时,uitesting在本地甚至服务器端工作。 我们的uitesting在我们的构build服务器上执行得很快。 它使用相同的部署在我通过Visual Studio手动testing的同一台服务器上。 但是当uitesting在buildserver上执行时偶尔遇到以下问题: Test(s) failed. OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL http://localhost:7056/hub/session/bed1d0e7-efdc-46b6-ba07-34903519c44d/element/%7B8717bb19-96c7-44d3-b0ee-d4b989ae652d%7D/click timed out after 60 seconds. —-> System.Net.WebException : The operation has timed out at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) –WebException at System.Net.HttpWebRequest.GetResponse() at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request) 基本上,testing点击一个上传button,其中input字段之前填充了一个文件。 由于该文件非常小,因此可以在几秒钟内完成。 […]

如何使用Shift-JIS和CP932创buildSQL注入攻击?

我正在写一些unit testing,以确保我的代码不容易在各种字符集下的SQL注入。 根据这个答案 ,您可以通过使用以下字符集之一注入\xbf\x27来创build漏洞: big5 , cp932 , gb2312 , gbk和sjis 这是因为如果您的助手configuration不正确,它会看到0x27并尝试转义它,使其成为\xbf\x5c\x27 。 但是, \xbf\x5c实际上是这些字符\xbf\x5c的一个字符,因此引号( 0x27 ) \xbf\x5c转义。 但是,正如我通过testing发现的,这不完全正确。 它适用于big5 , gb2312和gbk但在sjis和cp932都不是0xbf27或cp932 。 都 mb_strpos("abc\xbf\x27def","'",0,'sjis') 和 mb_strpos("abc\xbf\x27def","'",0,'cp932') 返回4 。 即PHP不会将\xbf\x27看作单个字符。 这将返回false为big5 , gb2312和gbk 。 另外,这个: mb_strlen("\xbf\x5c",'sjis') 返回2 (它为gbk返回1 )。 所以,问题是:是否有另一个字符序列,使sjis和cp932容易受到SQL注入,或者他们实际上不是脆弱的? 或者说是PHP说谎,我完全错了,MySQL会完全不同的解释?

字段“浏览器”不包含有效的别名configuration

我已经开始使用webpack2(准确地说, v2.3.2 ),并重新创build我的configuration后,我一直遇到一个问题,我似乎无法解决。 我得到(提前抱歉难看的转储): ERROR in ./src/main.js Module not found: Error: Can't resolve 'components/DoISuportIt' in '[absolute path to my repo]/src' resolve 'components/DoISuportIt' in '[absolute path to my repo]/src' Parsed request is a module using description file: [absolute path to my repo]/package.json (relative path: ./src) Field 'browser' doesn't contain a valid alias configuration aliased with mapping […]

自动编译Linq查询

我们发现编译我们的Linq查询要比每次编译要快得多,所以我们想开始使用编译查询。 问题在于它使得代码更难阅读,因为查询的实际语法在其他文件中是closures的,远离它被使用的地方。 我想到编写一个方法(或扩展方法)可能会使用reflection来确定传入的查询,并自动caching编译后的版本以供将来使用。 var foo = (from f in db.Foo where f.ix == bar select f).Cached(); Cached()将不得不反映传入的查询对象,并确定所选的表以及查询的参数types。 显然,reflection速度有点慢,所以最好使用caching对象的名字(但是你仍然必须首次使用reflection来编译查询)。 var foo = (from f in db.Foo where f.ix == bar select f).Cached("Foo.ix"); 有没有人有这样做的经验,或知道是否有可能? 更新:对于那些没有看到它,你可以编译LINQ查询到SQL与以下代码: public static class MyCompiledQueries { public static Func<DataContext, int, IQueryable<Foo>> getFoo = CompiledQuery.Compile( (DataContext db, int ixFoo) => (from f in db.Foo […]

整数在SQL Server T-SQL中的最大值常量?

在T-SQL中是否有像在其他语言中提供数据types的最大和最小值范围的常量? 我有一个代码表,其中每行都有一个上限和下限范围列,我需要一个条目表示一个范围,其中上限是一个int可以容纳的最大值(有点像hackish infinity)。 我宁愿不要硬编码,而是使用像SET UpperRange = int.Max

Dialog.show()与Activity.showDialog()

据我所知,有两种方法来显示一个活动的对话框。 创build对话框(例如,使用AlertDialog.Builder ),然后调用新创build的Dialog的show()方法。 调用Activity的showDialog()方法,传递一个int值来唯一地定义你想要build立的对话框types。 然后重写onCreateDialog()来实际构build对话框,Android会为您显示它。 第二种方法似乎是标准做法,但我很好奇,如果有任何理由,我使用哪一个问题。 以下是我可以想到的: 使用Dialog.show原因 如果您需要以某种方式参数化对话框,则使用Activity.showDialog可能会有些尴尬,如本问题所述 。 你可能不得不在一个成员variables中存储一个String或者某个东西,以便在onCreateDialog或者onPrepareDialog检索。 创build和修改对话框的逻辑分布在很多地方,可能会使代码更难以阅读和维护: 你调用showDialog() 在覆盖的onCreateDialog方法中,在一个潜在的大的switch语句中 在重载的onPrepareDialog方法中,在一个潜在的大的switch语句中 使用Activity.showDialog原因: Activity.showDialog的API文档说,这个对话框是由Activitypipe理的,我认为这个提供了一些好处? 但是,如果您使用AlertDialog.Builder ,我想这也是如此,因为您this作为parameter passing给Builder的构造函数。 如果您的活动将多次显示相同(或非常相似)的对话框,则此选项只会创build一次,而不是每次创build一个新对话框,因此对于为新对象分配空间的压力较小,垃圾收集等 所以我的问题是,决定何时使用Activity.showDialog以及何时使用Dialog.show的标准是什么?为什么?

UITableViewCell中的水平UIScrollView

我试图创build完全相同的效果,在AppStore应用程序中查看屏幕截图:在UITableView中,我有自定义的UITableViewCell的子类。 其中一个是为了展示一些产品的预览,比如说4张图片。 我希望它们能够像AppStore一样展示应用程序的屏幕截图:在带有UIPageControl的水平UIScrollView中。 所以我添加我的UIScrollView和我的UIPageControl到我的UITableViewCell,就像这样: @implementation phVolumePreviewCell – (id)init { if (self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kVolumePreviewCellIdentifier]) { [self setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; [self setSelectionStyle:UITableViewCellSeparatorStyleNone]; previews = [[NSMutableArray alloc] initWithCapacity:4]; for (int i = 0; i < 4; i++) { [previews addObject:@"dummy"]; } scrollView = [[UIScrollView alloc] initWithFrame:CGRectZero]; [scrollView setPagingEnabled:YES]; [scrollView setBackgroundColor:[UIColor grayColor]]; [scrollView setIndicatorStyle:UIScrollViewIndicatorStyleBlack]; [scrollView setShowsHorizontalScrollIndicator:YES]; [scrollView setBounces:YES]; [scrollView […]

代码高尔夫:倒计数游戏

挑战 英国着名电视游戏节目“ 倒计时”的启发,这是一项任务。 即使没有任何关于游戏的知识,挑战应该是非常清楚的,但是可以随时要求澄清。 如果你想看看这个游戏的剪辑,看看这个YouTube剪辑 。 它在1997年以奇妙的理查德·怀特利为特色。 给你6个数字,从集合{1,2,3,4,5,6,8,9,10,25,50,75,100}中随机select,以及100和999之间的随机目标数字。其目的是使用六个给定的数字和四个常用的算术运算(加,减,乘,除;全部有理数)来生成目标 – 或尽可能接近两侧。 每个数字最多只能使用一次,而每个算术运算符可以使用任意次数(包括零)。请注意,使用多less个数字并不重要。 编写一个采用目标编号和6个数字组(可以表示为list / collection / array / sequence)的函数,并以任何标准数字符号(例如中缀,前缀,后缀)返回解。 该function必须始终将最接近可能的结果返回给目标 ,并且必须在标准PC上最多运行1分钟。 请注意,在存在多个解决scheme的情况下,任何单个解决scheme都是足够的。 例子: {50,100,4,2,2,4},目标203 例如100 * 2 + 2 +(4/4) (确切) 例如(100 + 50)* 4 * 2 /(4 + 2) (确切的) {25,4,9,2,3,10},目标465 例如(25 + 10 – 4)*(9 * 2 – 3) (确切) {9,8,10,5,9,7},目标241 例如((10 + 9)* […]

AVFoundation + AssetWriter:通过图像和audio生成电影

我必须从我的iPhone应用程序包含UIImage从NSArray中导出电影,并添加一些.caf格式的audio文件,必须在预先指定的时间开始。 现在我已经能够使用AVAssetWriter(经过这个和其他网站上的许多问题和答案)导出包含图像的video部分,但似乎找不到一种方法来添加audio文件来完成电影。 这是我迄今得到的 -(void) writeImagesToMovieAtPath:(NSString *) path withSize:(CGSize) size { NSLog(@"Write Started"); NSError *error = nil; AVAssetWriter *videoWriter = [[AVAssetWriter alloc] initWithURL: [NSURL fileURLWithPath:path] fileType:AVFileTypeQuickTimeMovie error:&error]; NSParameterAssert(videoWriter); NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys: AVVideoCodecH264, AVVideoCodecKey, [NSNumber numberWithInt:size.width], AVVideoWidthKey, [NSNumber numberWithInt:size.height], AVVideoHeightKey, nil]; AVAssetWriterInput* videoWriterInput = [[AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeVideo outputSettings:videoSettings] retain]; AVAssetWriterInputPixelBufferAdaptor *adaptor = [AVAssetWriterInputPixelBufferAdaptor assetWriterInputPixelBufferAdaptorWithAssetWriterInput:videoWriterInput sourcePixelBufferAttributes:nil]; NSParameterAssert(videoWriterInput); […]

Java内存模型和C ++ 11内存模型有什么相似之处?

新的c ++标准引入了内存模型的概念。 关于它的问题已经有了,这是什么意思,它是如何改变我们在c ++中编写代码的方式等等。 我有兴趣了解C ++内存模型如何与旧的,众所周知的Java内存模型(1.5)相关联。 这是一样的吗? 这是类似的吗? 他们有什么重大的区别? 如果是这样,为什么? Java内存模型已经存在了很长时间,很多人都很了解它,所以我想这不仅对我来说,学习C ++内存模型是有帮助的。