[英]Element not click-able (Selenium Webdriver - JAVA)
所有,
我已经使用 Selenium webdriver 一段时间了,但遇到了一个奇怪的问题。 我需要单击 selenium webdriver 没有执行的元素,因此我接下来的所有步骤都失败了。 元素的html如下。
<div id="group-container" class="grp-view-container">
<div id="group-container-0" class="component-inline-block" '="" data-original-title="" title="">
<div id="group-container-1" class="component-inline-block" '="" data-original-title="" title="">
</div>
我需要点击 group-container-1。 我使用了简单的点击、Actions、JavascriptExecutor、SendKeys(keys.RETURN)。
我使用了 Chromedriver、FirefoxDriver。
请指导我。
谢谢。
经过一些谷歌搜索和本地测试,我得出的结论是,如果和元素确实隐藏在另一个元素后面,则来自 selenium 的正常 element.click() 调用将不起作用。
在您的情况下,您可能有一些 css 将 you 元素隐藏在其他元素后面,从而使 Selenium 无法访问它。
在这种情况下,您应该使用普通的旧 JS。
这是 FireFoxDriver 的示例:
FirefoxDriver driver = new FirefoxDriver();
driver.get("ENTER YOU URL HERE");
// driver.findElement(By.id("group-container-1")).click(); This will work only if the element is not hidden.
String jsExpression = "document.getElementById('group-container-1').click();";
((JavascriptExecutor) driver).executeScript(jsExpression);
要查看任何结果,您必须在单击的元素上具有 onClick 侦听器。
当您拥有使用 z-index 的 CSS 时,经常会出现这种情况。 另一个 HTML 元素的透明部分可能覆盖了您感兴趣的 HTML 元素。
有时使用绝对定位时可能会出现同样的情况。
过去我在编写脚本来测试搜索字段时遇到过同样的问题。 该脚本适用于页眉,但不适用于页脚。 我还可以通过键输入( sendKeys
)来测试该字段,而不是鼠标单击。
我收到此错误:
org.openqa.selenium.ElementClickInterceptedException: element click intercepted: Element <input type="submit" class="submit hidden-text" value="Search"> is not clickable at point (988, 633). Other element would receive the click: <i class="fas fa-arrow-circle-up"></i>
我的 ScreenShotOnFailure.java 实用程序显示了这个问题:
使用页面“返回顶部”的按钮部分遮挡了我想要单击的搜索图标。 我最初试图通过指定窗口大小( driver.manage().window().setSize(new Dimension(1024, 768));
)来解决这个问题,因为我认为它由于浏览器尺寸而被遮挡,但事实并非如此没有帮助。 所以我切换到JS点击按钮。
我改变了:
driver.findElement(By.xpath("(//input[@value='Search'])[2]")).click();
到:
org.openqa.selenium.WebElement ele = driver.findElement(By.xpath("(//input[@value='Search'])[2]"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", ele);
(和进口相关进口)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.