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/

相关文章:

java - 找不到适用于 jdbc :mysql://localhost:3306/egov 的合适驱动程序

c# - Internet Explorer 保护模式设置和缩放级别

java - 使用 Selenium WebDriver 检索 HTML 输入的值

java - Selenium Java 对象动态更改位置

java - Chrome 版本 44 在 selenium 测试中存在一些问题

java - Selenium 测试在 headless 模式下失败

javascript - 如何识别 Selenium 中没有标签的对象?

java - 为 hadoop MapReduce Cleanup 添加进度跟踪机制

java - Java 中带有 HashMap 的摩尔斯电码翻译器

java - log4j 尝试登录文件