【问题标题】:running selenium webdriver test in firefox is not working在 Firefox 中运行 selenium webdriver 测试不起作用
【发布时间】:2017-07-10 23:53:24
【问题描述】:

我正在尝试单击时间页面上的子菜单项。我使用以下代码来执行操作。

    WebElement mainMenu = driver.findElement(By.xpath(".//*[@class='main-menu']"))

    WebElement subMenu = driver.findElement(By.xpath(".//*[@class='sub-menu-item2']"))

    mainMenu.click();
    actions.moveToElement(mainMenu).build().perform();
    subMenu.click();

此代码在使用 Chrome 浏览器时可以正常工作,而在 Firefox 中无法正常工作。

【问题讨论】:

  • 你遇到了什么错误?
  • @derloopkat 根据我的测试,一旦我单击子菜单项,我必须验证加载的页面中是否存在元素。由于无法单击子菜单项,因此测试无法找到我要验证的元素。我有点卡在我的测试的早期步骤
  • 在您的代码中增加超时并在单击子菜单之前最大化窗口大小。 FF 中的默认窗口大小可能不同,从而强制在元素不可见的情况下使用不同的布局。这是导致 Selenium 中未发现元素的两个最常见问题。如果问题仍然存在,请添加您的 html 或链接。
  • @derloopkat 我在尝试单击子菜单项“找不到 webelement 键”时遇到以下错误

标签: selenium selenium-webdriver selenium-firefoxdriver


【解决方案1】:

通过阅读几篇文章,我了解到 geckodriver 还没有实现 Actions “https://github.com/mozilla/geckodriver/issues/233”,这证明我的代码在运行我的测试是 firefox 时不起作用。

我没有使用 Actions,而是使用了 JavaScriptExecutor,它对我来说非常好用,这是我使用的命令。

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", mainMenu);
subMenu.click(); 

这在 Chrome 和 Firefox 浏览器上都可以正常工作。

【讨论】:

  • 不要忘记在可能的情况下回来并接受这个作为答案,这样问题就会被标记为已回答。谢谢!
  • @JeffC 当然可以
猜你喜欢
  • 2014-10-07
  • 2012-11-21
  • 1970-01-01
  • 2017-02-10
  • 1970-01-01
  • 2020-05-22
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多