无法点击chrome中的按钮,即使是网页元素的ID或定位器,也可能是页面上唯一且可见的

时间:2016-11-29 02:57:55

标签: java selenium selenium-webdriver selenium-chromedriver

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

但现在运行它,获得异常"element not clickable"

无法理解为什么这不可见。我可以使用key.return在mac上实现这一点。因为这不是标准方式,所以试图找出工作时出了什么问题。

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>

例外:

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}]

2 个答案:

答案 0 :(得分:2)

此问题仅在使用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

答案 1 :(得分:0)

试试这个:

WebElement btn = driver.findElement(By.id("rp"));
btn.submit();

尝试使用submit()代替click(),因为元素的类型是提交,而不是按钮。

<input type="submit" ... >

代码在Chrome上运行正常。