对于此页面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}]
答案 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上运行正常。