在网页上查找元素的问题

时间:2013-10-30 17:34:22

标签: selenium selenium-webdriver qwebelement

webelement的ID为mainPage:mainForm:j_id152:locationsPage:locsBlock:slTable:0:locNamePanel

问题是:

查找WebElement。当悬停在该webelement上时,会出现需要单击的编辑链接。

尝试了这种做法:

  1. 向下滚动网页(以防万一)
  2. 按ID
  3. 查找webElement
  4. 获取该webElement的X和Y坐标
  5. 使用鼠标悬停
  6. 以下是代码:

    //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)。但是,鼠标悬停不起作用。

1 个答案:

答案 0 :(得分:1)

为什么不做以下事情:

//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 Robot类。