【问题标题】:Running selenium tests on IE 11 on Windows 10 1809 - no new windows open在 Windows 10 1809 上的 IE 11 上运行 selenium 测试 - 没有打开新窗口
【发布时间】:2019-04-13 19:39:32
【问题描述】:

在我的测试机器上,我可以开始我的测试,但是在测试打开和关闭几个Internet Explorer窗口后,不再打开新的windwos。我没有收到错误消息,并且测试卡住了。

我根据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,但问题仍然存在。

如何让测试运行到最后?

【问题讨论】:

    标签: javascript selenium selenium-webdriver ava


    【解决方案1】:

    有几个问题导致测试挂起:

    wait-calls 超时

    由于 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-08
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多