Ruby Selenium Webdriver元素不可单击
我犯了一个错误 元素在点(100,12)处不可单击。其他因素会 收到此点击 我对这个问题做了一些研究,下面是我尝试过的解决方案Ruby Selenium Webdriver元素不可单击,ruby,selenium,selenium-webdriver,Ruby,Selenium,Selenium Webdriver,我犯了一个错误 元素在点(100,12)处不可单击。其他因素会 收到此点击 我对这个问题做了一些研究,下面是我尝试过的解决方案 最大化窗口 driver.manage.window.maximize 滚动到视图中 driver.execute_script("arguments[0].scrollIntoView(true);", element) sleep(3) 这些似乎都不起作用 下面是HTML的布局 <body> <div> <di
driver.manage.window.maximize
driver.execute_script("arguments[0].scrollIntoView(true);", element)
sleep(3)
<body>
<div>
<div>
<div>
<ul>
<li> <a> Click me </a>
...
有人知道我做错了什么吗?我还能做些什么呢?如果您试图使用元素的坐标单击该元素,请确保您有准确的坐标。您可以尝试以下代码:
ele = driver.find_element(:xpath, "//li/a[contains(text(), 'Click me')]"
int eleXCoordinate = ele.getLocation().getX();
int eleYCoordinate = ele.getLocation().getY();
现在使用Robot类首先验证坐标是否正确
Robot robot = new Robot();
robot.mouseMove(dragElementXCoordinate, dragElementYCoordinate);
如果鼠标移动到元素上,您就可以开始了。否则,尝试点击并尝试添加一些值以获得精确的坐标。例如
Robot robot = new Robot();
robot.mouseMove(dragElementXCoordinate +310, dragElementYCoordinate +100);
现在您可以在屏幕上看到鼠标移到元素上,请执行单击
robot.mousePress(InputEvent.BUTTON1_MASK);
然后释放单击按钮
robot.mouseRelease(InputEvent.BUTTON1_MASK);
希望这有帮助 在这种情况下,您应该尝试使用
执行单击
。执行脚本
,如下所示:-
element = driver.find_element(:xpath, "//li/a[contains(text(), 'Click me')]")
driver.execute_script("arguments[0].click();", element)
希望它能帮助您……:)如果您查看异常,它会告诉您其他元素的HTML将收到单击。它是什么元素?你认识那个元素吗?也许是某个弹出div覆盖了你想要的元素,或者?我确实看到了。它是屏幕顶部的标志。点击这里没有意义。还有它点击的坐标是(100,12),我相信是左上角?这里没有预期的链接,这是有用的信息。现在你应该检查你的定位器,确保它得到了你想要的元素。它可能不够具体,无法找到多个元素。您可以打印outerHTML以查看元素的HTML,以确保它是正确的,并根据需要调整定位器。@JeffC我对selenium webdriver和ruby不熟悉。你能告诉我怎么打印outerhtml吗?是通过javascript实现的吗?我不知道Ruby,但您希望获得元素的属性“outerHTML”。如果你在谷歌上搜索一些,你会找到的。非常感谢,节省了很多时间
element = driver.find_element(:xpath, "//li/a[contains(text(), 'Click me')]")
driver.execute_script("arguments[0].click();", element)