如何点击硒WebDriver中的隐藏元素?

2022-09-01 22:40:05

我有一个显示一些记录的网格。当我单击记录并检查该元素时,它显示为隐藏,但在网格中可见。

我的 HTML 是:

<a href="http://192.168.1.6/eprint_prod_3.8/settings/othercost_add.aspx?type=edit&id=805" title="Plastic Spiral Bind"
<div style="float: left; width: 99%; overflow: hidden; height: 15px; overflow: hidden"> Plastic Spiral Bind </div>
</a>

上面的代码在检查时是隐藏的,但它在网格中是可见的。

硒代码:

driver.findElement(By.partialLinkText("Plastic Spiral Bind")).click();

答案 1

首先将该元素存储在对象中,假设然后编写以下代码以单击该隐藏元素:element

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element);

答案 2

您有两种方法。硒已被专门编写为不允许与隐藏元素交互.理由是,如果一个人不能执行该动作,那么硒也不应该。因此,要通过Selenium执行单击,您必须执行用户将要执行的操作以使该按钮可见(例如,将鼠标悬停在事件上,单击另一个元素等),然后在可见后执行单击。

但是,Selenium确实允许您在元素的上下文中执行Javascript,因此您可以编写Javascript来执行单击事件,即使它是隐藏的。

我的偏好是始终尝试并执行操作以使按钮可见