1

我有一个硒网格设置,集线器在 CI (jenkins) 服务器上运行。每当我从 jenkins 构建和运行我的项目时,它都无法执行:

WebElement inputElement = driver.findElement(By.xpath("//a[contains(@href,\"/Case/Add")]"));

inputElement.sendKeys(Keys.ENTER);

或者更确切地说,硒认为它确实如此并继续执行下一个命令,即selenium.select("id=LifeOffice", "label=AMP");

这些节点是每个运行不同浏览器的虚拟机,只有在 IE 8 浏览器上执行脚本时才会出现此问题。当我从我的 IDE 运行脚本时,它很好。

我已经尝试使用click ();((JavascriptExecutor)driver).executeScript("arguments[0].fireEvent('onclick');",inputElement);但我仍然有同样的问题......

4

1 回答 1

3

这听起来很奇怪,但请尝试在 sendkeys 命令之后查看页面。如果元素就在视口的外面里面,几乎接触到边界,这可能发生在你身上

该元素从未获得焦点,因为它隐藏在浏览器的滚动条/状态栏/覆盖它的页面的一部分后面。通常 IE 会将元素滚动到视口中并聚焦它,但有时,在边缘情况下,它不会。然后focus在状态栏/滚动条/空白页上调用(或点击或任何东西)调用。

一种解决方法?我只知道两个:

  • 更改计算机的分辨率/窗口大小/IE 布局(使其全屏,或禁用工具栏等)
  • 确保您永远不会更改分辨率/窗口大小等,并在这些边缘情况下使用纯 JavaScript:

    ((JavascriptExecutor)driver).executeScript("arguments[0].click()", inputElement);
    
于 2012-07-12T07:47:46.793 回答