我收到错误
元素在点(100,12)处无法点击。其他元素会 收到此点击
我对这个问题进行了一些研究,这是我尝试过的解决方案
最大化窗口
driver.manage.window.maximize
滚动浏览
driver.execute_script("arguments[0].scrollIntoView(true);", element)
sleep(3)
这些似乎都不起作用。
这是HTML的布局
<body>
<div>
<div>
<div>
<ul>
<li> <a> Click me </a>
...
我获得元素的方式是
element = driver.find_element(:xpath, "//li/a[contains(text(), 'Click me')]"
任何人都知道我做错了什么?我还能做些什么?
答案 0 :(得分:1)
在这种情况下,您应尝试使用click
执行.execute_script
,如下所示: -
element = driver.find_element(:xpath, "//li/a[contains(text(), 'Click me')]")
driver.execute_script("arguments[0].click();", element)
希望它会帮助你...... :)
答案 1 :(得分:0)
如果您尝试使用其坐标单击元素,请确保您具有准确的坐标。您可以尝试以下代码:
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);
希望这有帮助!