Selenium Web驱动程序脚本在从jenkins运行时无法在IE8中执行sendkey()



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

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

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

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

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

这听起来很奇怪,但请尝试在sendkeys命令之后查看页面。如果元素在,几乎接触到边界,则可能会发生这种情况:

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

变通办法?我只知道两个:

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

    ((JavascriptExecutor)driver).executeScript("arguments[0].click()", inputElement);
    

最新更新