运行 Windows 10 1809 上 IE 11 的硒测试 - 没有新的 windows 打开
Running selenium tests on IE 11 on Windows 10 1809 - no new windows open
在我的测试机上,我可以这样开始我的测试,但是在测试打开和关闭几个Internet Explorer windows 之后,没有再打开新的windwos。我没有收到错误消息,测试卡住了。
我根据 selenium wiki 检查了每一个设置。
如果我使用 chrome 驱动程序来 运行 chrome 中的测试,一切 运行 都很顺利。
使用的代码如下所示:
var { Builder, By, Key, until, Capabilities } = require("selenium-webdriver");
var ieCapabilities = Capabilities.ie();
var driver = await new Builder().withCapabilities(ieCapabilities).build();
await driver.manage().setTimeouts({ implicit: 3000, pageLoad: 3000, script: 3000 })
await driver.manage().window().setRect({ height: this.initialHeight, width: this.initialWidth });
await driver.get("http://localhost/");
// do the tests
await driver.quit();
代码在 ava 测试中 运行。为了避免问题,我暂时将concurrency
设置为1并进行了所有测试serial
,但问题仍然存在。
如何让测试运行结束?
有几个问题导致测试挂起:
wait
-调用超时
由于 IE 中的行为有点不同,缺少超时导致测试挂起。
错误代码:
await driver.wait(until.stalenessOf(elementSelectMenu));
正确代码:
await driver.wait(until.stalenessOf(elementSelectMenu), 6000);
缺少 await
个语句
这在 firefox 或 chorme 中从来都不是问题,但导致 IE 崩溃。
引起问题的代码:
driver.findElement([...]).click();
正确代码:
await driver.findElement([...]).click();
在 TLS (https) 网站上使用 selenium 时遇到问题
有些测试必须使用 TLS 检查网站上的内容。在 IE 上,测试抛出错误。
解决方法是禁用所有区域 protected mode
。
在我的测试机上,我可以这样开始我的测试,但是在测试打开和关闭几个Internet Explorer windows 之后,没有再打开新的windwos。我没有收到错误消息,测试卡住了。
我根据 selenium wiki 检查了每一个设置。
如果我使用 chrome 驱动程序来 运行 chrome 中的测试,一切 运行 都很顺利。
使用的代码如下所示:
var { Builder, By, Key, until, Capabilities } = require("selenium-webdriver");
var ieCapabilities = Capabilities.ie();
var driver = await new Builder().withCapabilities(ieCapabilities).build();
await driver.manage().setTimeouts({ implicit: 3000, pageLoad: 3000, script: 3000 })
await driver.manage().window().setRect({ height: this.initialHeight, width: this.initialWidth });
await driver.get("http://localhost/");
// do the tests
await driver.quit();
代码在 ava 测试中 运行。为了避免问题,我暂时将concurrency
设置为1并进行了所有测试serial
,但问题仍然存在。
如何让测试运行结束?
有几个问题导致测试挂起:
wait
-调用超时
由于 IE 中的行为有点不同,缺少超时导致测试挂起。
错误代码:
await driver.wait(until.stalenessOf(elementSelectMenu));
正确代码:
await driver.wait(until.stalenessOf(elementSelectMenu), 6000);
缺少 await
个语句
这在 firefox 或 chorme 中从来都不是问题,但导致 IE 崩溃。
引起问题的代码:
driver.findElement([...]).click();
正确代码:
await driver.findElement([...]).click();
在 TLS (https) 网站上使用 selenium 时遇到问题
有些测试必须使用 TLS 检查网站上的内容。在 IE 上,测试抛出错误。
解决方法是禁用所有区域 protected mode
。