.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.0和IEDriverServer.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()
。尽管文档可能会声称,它们并不等同。