首先 -
driver.get("http://www.imdb.com");
new WebDriverWait(driver, 5000)
.until(ExpectedConditions.visibilityOfElementLocated(By.id("navTitleMenu")));
new Actions(driver)
.clickAndHold(driver.findElement(By.id("navTitleMenu")))
.moveToElement(driver.findElement(By.linkText("Top Rated Movies")))
.click()
.build().perform();
的問題是,當你移動到navTitleMenu
:噸我的情況下工作全部, 忘掉隱含的等待,這是不需要的,因爲IMDB是一個穩定的站點
執行mousehover後添加明確的等待。它一定會爲你工作。
請嘗試下面提到的確切代碼,使用我的瀏覽器正常工作。
請根據您的目錄
package com.imdb.top;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Imdb
{
public static void main(String... args)
{
System.setProperty("webdriver.gecko.driver",
"C:\\Users\\thinksysuser\\Downloads\
\geckodriver-v0.18.0-win64\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("http://www.imdb.com");
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.id("navTitleMenu")))
.build().perform();
WebDriverWait wait = new WebDriverWait(driver, 60, 50);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*
[@id='navMenu1']/div[2]/ul[1]/li[6]/a"))).click();
driver.findElement(By.xpath(".//*
[@id='navMenu1']/div[2]/ul[1]/li[6]/a")).click();
}
}
所以你在哪裏點擊使用此XPath位置改變壁虎驅動程序路徑?或者你有任何錯誤或異常? –