【问题标题】:Test work properly on Chrome, not on Firefox测试在 Chrome 上正常工作,而不是在 Firefox 上
【发布时间】:2018-04-10 14:41:39
【问题描述】:

我使用 TestNG 和 selenium 编写了测试。

code...
actions.sendKeys(Keys.chord(Keys.CONTROL, "a"));
        actions.sendKeys(Keys.BACK_SPACE);
        actions.build().perform();
code...

我想使用这些 sendKeys 和 DataProvider 删除登录窗口中的文本

@DataProvider(name = "inputs")
public Object[][] getData() {
    return new Object[][]{
            {"000000000", true},
            {"000000000", true}
    };
}

HTML:

<div><input type="tel" class="valid TextInput-kJdagG iVdKHC" name="recoveryPhone" id="eb69ff0b-3427-6986-7556-b7af40ffb156" aria-describedby="eb69ff0b-3427-6986-7556-b7af40ffb156" value="+48 "></div>

错误信息:

Unable to read VR 
Path1523545392670   Marionette  INFO    Enabled via --marionette
1523545393744   Marionette  INFO    Listening on port 52644
1523545394180   Marionette  WARN    TLS certificate errors will be ignored for this session

测试在 Chrome 上按预期工作,但在 Firefox 上,这些 sendKeys 并不总是标记文本,并清除此文本。在项目中我必须使用动作类。为什么测试运行方式不同?

【问题讨论】:

  • 用相关的 HTML 更新问题

标签: selenium testing selenium-chromedriver selenium-firefoxdriver


【解决方案1】:

对照您的版本(浏览器、浏览器驱动程序、selenium 等,在任何问题中总是明智地包含)检查此帖子 https://github.com/mozilla/geckodriver/issues/665,这可能是 geckodriver 的一个已知错误。

这篇文章包含了一个以不同方式创建和弦的变通方法,使用:

List<CharSequence> keyWithModifiers = new ArrayList<CharSequence>();
keyWithModifiers.add(Keys.CONTROL);
keyWithModifiers.add("a");
String ctrlA = Keys.chord(keyWithModifiers);
textFieldElem.sendKeys(ctrlA);

这种方法适用于我使用 Selenium 3.7.1 Java 绑定、gecko 驱动程序 0.18.0(64 位)和 Firefox 57.0.2 - 59.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    相关资源
    最近更新 更多