Selenium 异常错误 - 元素在 (x,y) 点不可点击。其他元素将收到点击
我们可能会遇到SeleniumExceptionError-Elementisnotclickableatpoint(x,y)。其他元素会在工作Seleniumwebdriver时收到点击。
这通常是在从Chrome浏览器执行Selenium测试时看到的,而不是在其他浏览器(如IE和Firefox)中。发生这种情况是因为Chrome浏览器无法计算网络元素的正确位置。
此外,在Chrome浏览器中,元素在其中间位置被点击。由于应用程序和Selenium之间发生同步问题,也可能遇到此异常。
存在一些解决此问题的解决方案,如下所示-
我们应该确保我们使用的是最新版本的chromedriver,并且它与我们本地系统中的Chrome浏览器版本兼容。
获取webelement的坐标,然后使用Actions类中的方法对其进行单击。
语法
WebElement elm = driver.findElement(By.tagName("input"));
//Point类的实例
Point location = elm.getLocation();
//得到x,y坐标
int m = location.getX();
int n = location.getY();
//Actions类的实例
Actions a = new Actions(driver);
a.moveToElement(elm,m,n).click().build().perform();获取webelement的坐标并使用JavaScriptExecutor单击它。
获取x坐标的语法-
WebElement l = driver.findElement(By.tagName("input"));
JavascriptExecutor j =(JavascriptExecutor)driver;
j.executeScript(
"window.scrollTo(0,"l.getLocation().x+")");
l.click();获取y坐标的语法-
WebElement l = driver.findElement(By.tagName("input"));
JavascriptExecutor j =(JavascriptExecutor)driver;
"window.scrollTo(0,"l.getLocation().y+")");
l.click();