首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能使用IEDriverServer单击元素

不能使用IEDriverServer单击元素
EN

Stack Overflow用户
提问于 2015-06-24 10:40:32
回答 1查看 1K关注 0票数 2

我在网页上有一个元素,它只在单击父元素后才会变得可见。因此,在单击演示列表中的演示后,将显示一行图标,这些图标表示所选演示的操作。下面的代码在webdriver和chromedriver中都能很好地工作:

代码语言:javascript
复制
demo.click(); //click demo
waitForElementIsDisplayed(demoReservation_btn); //wait until reservation icon is displayed
demoReservation_btn.click(); //click icon

最初,我得到了一个StaleElementReferenceException,我试图通过在within循环中使用try/catch块来修复这个问题,这个循环将继续循环,直到单击图标。这导致IEDriverServer在几个循环之后崩溃。

我还试着用这样的动作来包装它:

代码语言:javascript
复制
Action action = new Action(driver);
action.click(demo).click(demoReservation_btn).build().perform()

这导致了一个NoSuchElementException。

我知道文档中提到了一些关于浏览器焦点和在元素上徘徊的问题,但我不相信这就是问题所在。我尝试了一些其他的东西,比如将moverToElement添加到操作中,在元素上盘旋,但是这些都没有成功。我相信一个可能的解决方案是使用javascript执行器,但是如果可能的话,我想避免这种方法,还有其他的建议吗?

编辑

IEDriverServer设置:

代码语言:javascript
复制
File file = new File("IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
driver = new InternetExplorerDriver();
driver.manage().window().maximize();
return driver;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-24 13:21:22

尝试禁用IE的本机事件

代码语言:javascript
复制
DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
cap.setCapability("nativeEvents",false);
driver  = new InternetExplorerDriver(cap);

我最好在C#版本中使用它。阅读,了解为什么您可能需要这样做。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31024414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档