我尝试使用 webdriver 单击链接,但它向我抛出 ElementNotVisibleException,提示“元素当前不可见,因此可能无法与之交互”
我的 WebDriver 代码:
addProgram.click();
addProgram 指的是 anchor 元素。这是通过注释 @FindBy(how= How.LINK_TEXT, using="Add Program") 来填充的。换句话说,它类似于 driver.findElement(By.linkText("Add Program"))。
我的 HTML 是:
<div class="form_btn">
<a href="/program/addProgram">
<span>Addrogram</span
</a>
</div>
当我从上面的 div 中删除 css 声明时,它开始工作。潜水具有悬停风格,可能是导致问题的原因。
CSS:
.form_btn {
float:left;
background:url(/bg_button_right.gif) no-repeat scroll top
right;
color: #fff;
display: block;
height:22px;
font: bold 10px arial;
margin-right: 0px;
margin-top:2px;
padding-right: 4px; /* sliding doors padding */
text-decoration: none;
}
.form_btn span {
background:url(/assets/images/provider/bg_button_left.gif) no-repeat;
display: block;
float:left;
line-height:18px;
padding: 2px 5px 5px 10px;
font-size:11px;
}
.form_btn a{
color:#fff;
}
.form_btn a:hover{
color:#fff;
text-decoration:none;
cursor:hand;
}
我在网上搜寻了一些解决方案,但都没有成功。非常感谢任何建议/帮助。
谢谢, 克里斯。
最佳答案
(更新)此问题已解决,并且自 Selenium 2.4.0 起应该可用
听起来你遇到了和我一样的错误:
http://code.google.com/p/selenium/issues/detail?id=1445
解决方法是获取链接内的元素并单击。
重写你的代码:
driver.findElement(By.linkText("Add Program")).findElementBy(By.tagName("span"))
关于hyperlink - 当我尝试单击超链接时出现 Webdriver ElementNotVisibleException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6123952/