webelement 的 id 是 mainPage:mainForm:j_id152:locationsPage:locsBlock:slTable:0:locNamePanel
问题是:
查找 WebElement。当将鼠标悬停在该网络元素上时,会出现需要单击的编辑链接。
尝试了这种方法:
- 向下滚动网页(以防万一)
- 通过 id 查找 webElement
- 获取该 webElement 的 X 和 Y 坐标
- 使用鼠标悬停
以下是代码:
//Finding the Webelement coordinates
int X= driver.findElement(By.id("mainPage:mainForm:j_id152:locationsPage:locsBlock:slTable:0:locNamePanel")).getLocation().getX();
int Y= driver.findElement(By.id("mainPage:mainForm:j_id152:locationsPage:locsBlock:slTable:0:locNamePanel")).getLocation().getY();
System.out.println("The coordinates are:-" +X +"---"+Y);
Robot robot = new Robot();
//Doing a mouse over for the X and Y coordinates
robot.mouseMove(X, Y);
//Clicking the Edit button
driver.findElement(By.id("mainPage:mainForm:j_id152:locationsPage:locsBlock:slTable:0:j_id207")).click();
问题:
X 和 Y 坐标正在返回(不确定这些坐标是否适用于我正在寻找的 WebElement)。但是,鼠标悬停不起作用。
你为什么不做下面这样的事情:
//Finding the WebElement
WebElement element = driver.findElement(By.id("mainPage:mainForm:j_id152:locationsPage:locsBlock:slTable:0:locNamePanel"));
Actions actionsProvider = new Actions(driver);
actionsProvider.moveToElement(element).perform();
//Clicking the Edit button
driver.findElement(By.id("mainPage:mainForm:j_id152:locationsPage:locsBlock:slTable:0:j_id207")).click();
这应该完成同样的事情,而不必依赖Java机器人类。