Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Selenium IE驱动程序在远程执行期间间歇性暂停_.net_Selenium_Webdriver_Virtual Machine - Fatal编程技术网

.net Selenium IE驱动程序在远程执行期间间歇性暂停

.net Selenium IE驱动程序在远程执行期间间歇性暂停,.net,selenium,webdriver,virtual-machine,.net,Selenium,Webdriver,Virtual Machine,我的印象是,这是人们在使用硒时面临的一个常见问题,但我惊讶地发现这一点。这个问题只针对较旧版本的硒,并建议放置一个粗糙的“睡眠等待”,到目前为止,这对我来说还不起作用 关于我的问题的精彩解释可以在网站上找到简单地说,当我偶尔使用SeleniumWebDriver运行远程测试时,我会遇到一些测试暂停。所谓暂停,我的意思是浏览器窗口关闭,驱动程序(在本例中为IEDriverServer)无限期地运行,直到被手动终止 我想知道的是有人找到工作了吗?我需要在“url无响应”异常首次发生时终止WebDri

我的印象是,这是人们在使用硒时面临的一个常见问题,但我惊讶地发现这一点。这个问题只针对较旧版本的硒,并建议放置一个粗糙的“睡眠等待”,到目前为止,这对我来说还不起作用

关于我的问题的精彩解释可以在网站上找到
简单地说,当我偶尔使用SeleniumWebDriver运行远程测试时,我会遇到一些测试暂停。所谓暂停,我的意思是浏览器窗口关闭,驱动程序(在本例中为IEDriverServer)无限期地运行,直到被手动终止

我想知道的是有人找到工作了吗?我需要在“url无响应”异常首次发生时终止WebDriver进程,或者完全避免它。当前浏览器关闭,但驱动程序挂起,直到通过远程连接手动关闭

其他一些可能有用的信息:

  • 测试通常在IE7上运行,有时在IE8上运行(在IE7上似乎更频繁地暂停,但这可能只是巧合,我无法用数据来支持)
  • 暂停发生在不同的测试上,不同的测试在不同的构建之间,但那些暂停的测试是整个测试套件的一个子集
  • 我正在XP客户端机器上运行测试,该机器正在Windows 2008 R2服务器上访问我们部署的页面。这些机器位于相同的实验室管理环境(2010)
  • 有一段时间我没有让任何测试暂停。但是,由于没有签入解决方案,测试已经开始间歇性地暂停
  • 我正在用C#编写测试,并使用Selenium.NET绑定WebDriver 2.28.0IEDriverServer.exe
  • 测试通过客户端上的TestAgent运行,该客户端具有与测试控制器通信的QTAgent.exe进程
我尝试了一些关键的事情:

  • 实现了一个javascript错误检测器,该检测器将向日志报告(暂停测试时为空)
  • 元素上的所有操作都由waitForElementToExist调用执行(最多5秒)
  • 测试不会在本地暂停
  • 在测试中,似乎有问题的区域需要额外的睡眠等待
  • 环境的再创造

或者,如果没有直接的解决方法来防止测试暂停,那么也欢迎使用一种解决方案来终止已暂停的测试。

我不太清楚到底是什么问题。您是否在测试中收到异常,或者在通过WebDriver关闭浏览器时IEDriverServer.exe没有正确关闭,或者两者都有问题?另外,当您说您正在“运行[ning]远程测试”时,这是否意味着您正在将RemoteWebDriver与Java Selenium服务器或其他一些机制结合使用?有效的问题已编辑以更清晰(希望如此)。很高兴看到原来的博客海报回复!为了在这里直接回答您的问题,驱动程序在发生某些事件时没有正确关闭,并且挂起导致测试停止,直到手动终止。我正在使用TFS构建来运行我的测试,这些测试执行存储在客户端盒上的IEDriverServer.exe。好的,最后一个后续问题:浏览器是如何关闭的?IE驱动程序本身没有自动关闭IE实例的机制。这意味着要么您的代码试图在出现故障时关闭浏览器,要么浏览器本身正在悄无声息地崩溃,要么执行测试代码的代理进程试图变得聪明。是哪一个?在出现异常或断言失败时,测试将跳转到“Cleanup()”方法,该方法将调用Selenium的“driver.Quit()”。我的印象是,当我的测试结果出现异常时,这就是关闭浏览器的原因。然而,这应该也会杀死司机。我不会以任何其他方式终止浏览器。请仔细检查
Cleanup()
方法,以确保您使用的是
driver.Quit()
,而不仅仅是
driver.Close()
。尽管文档可能会声称,它们并不等同。