Selenium / ChromeDriver - 单击元素的中心

Selenium / ChromeDriver - Clicking in the center of an element

所以我今天运行遇到了一个新的问题,我没有经历过,它涉及到Chrome驱动程序的性质(我相信Chrome是唯一的这样做..)。我知道当您使用 .click() 单击一个元素时,它会在中心单击。然而,这很麻烦,因为我试图单击一个恰好在中心嵌套了 link 的复选框。

我也尝试过使用 JavaScript 执行器,但没有成功。有人知道解决这个问题的方法吗?是的,我试过只访问该框,但它没有我可以使用的标识符..

您可以使用坐标点击

Coordinates co = element.getCoordinates();

由于您没有在此处添加复选框 html 我假设它类似于:

<input type="checkbox" id="checkbox_id">
<label for="checkbox_id">Something</label>

所以你只需要点击输入而不是标签。它看起来像这样:

driver.findElemnt(By.id("checkbox_id")).click();

或使用 xPath:

 driver.findElemnt(By.xpath("//input[@type='checkbox']")).click();

这个问题可以通过两种方法解决

方法一:找到checkboxx的正确xpath使用默认点击

driver.findElement(By.xpath("CheckBoxXPath").click();

方法 2: 如果您真的想点击 WebElement 的中心,那么您可以使用 Actions class 方法 click(WebElement target) 此方法点击 WebElement 的中间。 参考