【发布时间】:2013-02-07 10:13:16
【问题描述】:
我在 selenium 中有一个代码,它可以动态单击菜单页面中的选项卡。有时会发生该选项卡不可点击(它只是一个普通的td,里面有span),当Web Driver 试图点击这个选项卡时,我的程序被冻结(没有抛出异常或任何东西)。
我无法避免点击这样的标签,但我想以某种方式防止点击后冻结。那么我可以设置一些超时时间或者告诉 selenium 如果元素不可点击该怎么办?
driver.findElement(By.xpath(
format("//span[@class='rf-tab-lbl'][text()='{0}']",
navigation.getGroup()))).click();
//if the tab is currently selected (hence is not clickable) selenium won't click
// on it and program freezes
【问题讨论】:
-
什么浏览器?那个浏览器是什么版本的?什么版本的 Selenium?
-
问题是它不应该冻结。当您在页面上手动单击它时,它是否也会冻结?尝试用 Firebug 点击它,看看它是否触发了某种可以欺骗 WebDriver 的响应。如果它正在等待某个脚本,您可以尝试设置script timeout。
driver.manage().timeouts().setScriptTimeout(...),虽然我认为这不会有帮助。 -
另外,可点击和不可点击的标签有什么区别?您不能只检查该元素是否包含在
<td>而不是<a>元素中吗?
标签: java selenium webdriver selenium-webdriver htmlunit