在测试机上,我可以启动测试,但是在测试打开和关闭多个Internet Explorer窗口后,不再打开新的窗口。我没有收到错误消息,并且测试卡住了。
我根据selenium wiki检查了每个设置。
如果我使用chromedriver在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
,但问题仍然存在。
如何使测试运行到最后?
答案 0 :(得分:0)
有几个问题导致测试挂起:
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检查网站上的内容。在IE上,测试引发了错误。
要对所有区域禁用protected mode
。