java - 即使 id 或 Web 元素的定位器或在页面上唯一且可见,也无法单击 chrome 中的按钮

标签 java selenium selenium-webdriver selenium-chromedriver

对于此页面,https://dev.simplify360.com/,带有“id=rp”的登录按钮,可以使用selenium 2.53.1在chrome中点击和 3。

但是现在运行它,得到异常“元素不可点击”

无法理解为什么它不可见。我可以在Mac上使用keys.return来实现这一点。由于这不是标准方法,因此尝试找出工作时出了什么问题。

Chrome 版本:54.0.2840.98(64 位)

按钮代码:

<div>

<input class="submit btn btn-block btn-primary" value="Login" id="rp" style="margin-top: 12px; margin-right: 17px; margin-bottom: 7px;" type="submit">

</div>

异常(exception):

org.openqa.selenium.WebDriverException: unknown error: Element is not clickable at point (888, 456). Other element would receive the click: <div class="row">...</div>
  (Session info: chrome=54.0.2840.98)
  (Driver info: chromedriver=2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1),platform=Mac OS X 10.12.1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 33 milliseconds
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'nagarjunaMBP.local', ip: '172.16.1.3', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.1', java.version: '1.7.0_71'
Session ID: 550d02f66708962a5eebcd76e4440774
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{platform=MAC, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=/var/folders/g4/dylg4g7s7wbdtg_f6mtzj8m00000gn/T/.org.chromium.Chromium.YxbtCE, chromedriverVersion=2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1)}, networkConnectionEnabled=false, rotatable=false, locationContextEnabled=true, mobileEmulationEnabled=false, version=54.0.2840.98, pageLoadStrategy=normal, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, webStorageEnabled=true, nativeEvents=true, hasTouchScreen=false, applicationCacheEnabled=false, takesScreenshot=true}]

最佳答案

仅在使用 Chrome 驱动程序时才会出现此问题,因为 Chrome 浏览器使用点位置。当元素位置不固定并且我们尝试对该特定元素执行某些操作时,将导致错误“selenium.common.exceptions.WebDriverException - 元素在点 (xx, xx) 处不可单击”。

尝试下面的代码。

driver.get("https://dev.simplify360.com/");
WebElement ele = driver.findElement(By.id("rp"));
((JavascriptExecutor)driver).executeScript("window.scrollTo(0,"+ele.getLocation().x+")");
ele.click();

有关此问题的更多详细信息,请阅读文档 here

关于java - 即使 id 或 Web 元素的定位器或在页面上唯一且可见,也无法单击 chrome 中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40857047/

相关文章:

selenium - 如何避免 Selenium 集成测试被视为可疑登录

java - 使用selenium自定义Chrome webdriver保存文件下载时不提示保存或丢弃文件

java - SQL的IN子句中如何使用arraylist作为参数

java - JBoss 上使用 Maven 的 Eclipse Web 应用程序部署问题

java - Jackson XML - 反序列化空类和多态性

Java for 循环总是返回 true

java - Selenium Webdriver 测试框架设置

Java字符串用评估的键替换正则表达式模式

java - Selenium :使用getLocation和getSize与Element交互

selenium - 让 WebDriver 与 Firefox 一起使用