我有一个显示一些记录的网格。当我单击一条记录并检查该元素时,会显示它是隐藏的,但在网格中是可见的。
我的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>
上面的代码在检查时是隐藏的,但在网格中是可见的。
Selenium代码:
driver.findElement(By.partialLinkText("Plastic Spiral Bind")).click();
发布于 2014-03-02 16:37:33
首先将元素存储在object中,假设是element
,然后编写以下代码来单击隐藏的元素:
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element);
发布于 2014-03-02 05:48:40
您有两种方法。Selenium是专门编写的,不允许与隐藏元素进行交互。理由是,如果一个人不能执行这个动作,那么Selenium也不应该。因此,要通过Selenium执行单击,您必须执行用户为使该按钮可见而执行的操作(例如,鼠标悬停在事件上,单击另一个元素等),然后在可见时执行单击。
但是,Selenium确实允许您在元素的上下文中执行Javascript,因此您可以编写Javascript来执行单击事件,即使它是隐藏的。
我的首选是始终尝试并执行操作以使按钮可见
发布于 2019-12-04 08:06:44
以下是Python中的脚本。
您不能单击selenium中隐藏的元素。但是,您可以执行JavaScript来单击隐藏的元素。
element = driver.find_element_by_id(buttonID)
driver.execute_script("$(arguments[0]).click();", element)
https://stackoverflow.com/questions/22110282
复制相似问题