gpt4 book ai didi

java - 无法使用 IEDriverServer 单击元素

转载 作者:行者123 更新时间:2023-11-30 08:11:27 27 4
gpt4 key购买 nike

我在网页上有一个元素,只有在单击其父元素后才会显示。因此,在单击演示列表中的一个演示后,会显示一行代表所选演示操作的图标。以下代码适用于 webdriver 和 chromedriver:

demo.click(); //click demo
waitForElementIsDisplayed(demoReservation_btn); //wait until reservation icon is displayed
demoReservation_btn.click(); //click icon

最初我得到了一个 StaleElementReferenceException 并且我试图通过在 while 循环中有一个 try/catch block 来解决这个问题,该 block 将继续循环直到单击图标。这导致 IEDriverServer 在几个循环后崩溃。

我也尝试过将它包装在一个 Action 中,如下所示:

Action action = new Action(driver);
action.click(demo).click(demoReservation_btn).build().perform()

这会导致 NoSuchElementException。

我知道 documentation 中提到了一些问题关于浏览器焦点和悬停在元素上,但我不认为这是问题所在。我尝试了其他一些方法,例如将 moverToElement 添加到操作中,将鼠标悬停在元素上,但没有成功。我相信一种可能的解决方案是使用 javascript 执行程序,但我想尽可能避免这种方法,还有其他建议吗?

编辑

IEDriverServer 设置:

File file = new File("IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
driver = new InternetExplorerDriver();
driver.manage().window().maximize();
return driver;

最佳答案

尝试禁用 IE 的原生事件

DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
cap.setCapability("nativeEvents",false);
driver = new InternetExplorerDriver(cap);

我在 C# 版本中使用它获得了更好的结果。阅读this了解您可能需要这样做的原因。

关于java - 无法使用 IEDriverServer 单击元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31024414/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com