hyperlink - 当我尝试单击超链接时出现 Webdriver ElementNotVisibleException

标签 hyperlink selenium click webdriver

我尝试使用 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/

相关文章:

css - 如何将存储在 symfony 公共(public)文件夹外的 css 链接到 Twig

javascript - 在包装集上绑定(bind) jQuery 单击事件

ios - Swift:单击 UICollectionView 的单元格并打开 AlertViewController

url - 如何在 Selenium IDE 中从 'link' 元素获取 url

html - 将图像从 iOS WebApp 保存到照片库

jquery - 在 HTML 中找到 Twitter 句柄,然后创建链接

xml - 如何使用 jvm-cucumber-parallel-plugin 重新运行失败的测试

java - 将 Selenium 作为预构建事件运行时,Visual Studio 2010 挂起

java - 如何根据 HTML 为输入元素构建 CSS 选择器

css - 如何在鼠标悬停时设置 "submit"输入的样式,单击?