鼠标悬停在硒上

时间:2016-04-20 11:08:03

标签: selenium

我试图将鼠标移到此处。如果我徘徊在女性身上,我们可以看到不同的子菜单。我想点击其中任何一个。 以下是代码

public static void main(String[] args) throws InterruptedException
{
System.setProperty("webdriver.chrome.driver", "D://chromedriver.exe");
    WebDriver driver= new ChromeDriver();
    driver.get("http:obsessory.com/");
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
   System.out.println("ok");
    Thread.sleep(1000);
    Actions action = new Actions(driver);
   WebElement we = driver.findElement(By.xpath(".//*[@id='nav']/li[2]/a"));
   WebElement ve      =driver.findElement(By.xpath(".//[@id='nav']/li[2]/ul/li/div[2]/ul/li[2]/a"));
   action.moveToElement(we).click(ve).perform(); 

}

3 个答案:

答案 0 :(得分:0)

尝试按照以下方式构建您的操作:

  action.moveToElement(we).moveToElement(ve).click(ve).perform();

对您的代码的一般建议很少: 将chromedriver添加到系统路径中,这样您就不必在每次测试中使用System.setProperty("webdriver.chrome.driver", "D://chromedriver.exe");。也可以使用显式等待而不是隐式等待,并且永远不要在代码中使用thread.sleep。

答案 1 :(得分:0)

这是一个工作示例,点击菜单"女人"并链接"裤子":

WebDriver driver= new ChromeDriver();
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.ignoring(WebDriverException.class);

driver.get("http://obsessory.com/");

// mouse over the main menu "Women"
WebElement menu = driver.findElement(By.xpath("id('nav')//a[.='Women']"));
new Actions(driver).moveToElement(menu).perform();

// click the link "Trousers" until succeed
WebElement link = menu.findElement(By.xpath("..//a[.='Trousers']"));
wait.until((WebDriver wd)->{
    link.click();
    return true;
});

答案 2 :(得分:-1)

如果提供的答案不起作用,那么你可以尝试移动到元素,等等然后点击如下。

     action.moveToElement(we).build().perform();
     Thread.sleep(1000);
     driver.findElement(By.xpath(".//[@id='nav']/li[2]/ul/li/div[2]/ul/li[2]/a")).click();

一般情况下,我会将鼠标指针移出屏幕,以便这些鼠标移动动作效果很好。

谢谢你, 穆拉利