2017-03-04 142 views
0

所有網絡驅動程序都存在無法打開鼠標懸停菜單的硒問題。儘管分析元素網絡驅動程序的Xpath無法打開Mouse Over(CatMenu),並且日誌是「必須爲移動動作提供位置「。Xpath在Selenium中的MouseOver(CatMenu)上不起作用

我想去n11.com的網絡地址和Kitap,Müzik,電影,Oyun和點擊Kitap,但它不工作。 謝謝

@Test 

public void startWebDriver(){ 
System.setProperty("webdriver.chrome.driver", "C://chromedriver.exe"); 
WebDriver driver = new ChromeDriver(); 
driver.manage().window().maximize(); 
driver.get("http://www.n11.com"); 


Actions act = new Actions(driver); 
act.moveToElement(driver.findElement(By.xpath(".//*[@id='contentMain']/div/nav/ul/li[8]/a"))).perform(); 

}

回答

1

使用下面的代碼來實現相同的 -

System.setProperty("webdriver.chrome.driver", "C://chromedriver.exe"); 
    driver =new ChromeDriver();  
    driver.get("http://www.n11.com/"); 
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 

    WebElement menu = driver.findElement(By.xpath("//li[@class='catMenuItem']/a[@title='Kitap, Müzik, Film, Oyun']")); 
    WebElement submenu = driver.findElement(By.xpath("//li[@class='subCatMenuItem']/a[@title='Kitap']")); 

    Actions action = new Actions(driver); 

    action.moveToElement(menu).moveToElement(submenu).click().build().perform(); 

使用一些Implicit Wait以避免時間ut例外找到您的網頁元素
使用更具體的xpath找到您的網頁元素。

你的情況,你首先需要懸停Kitap, Müzik, Film, Oyun菜單上,然後必須在Kitap

+0

謝謝!! @Narendra –

0

你可以嘗試使用ExplicitWait更具體的XPath

WebDriverWait wait = new WebDriverWait(driver, 15); 
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("(//a[@title='Kitap, Müzik, Film, Oyun']")[2]))); 
// WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Kitap, Müzik, Film, Oyun"))); 
Actions act = new Actions(driver); 
act.moveToElement(element).perform(); 
+0

進行點擊此代碼返回顯示java.lang.NullPointerException和我couldnot找理由@Andersson –

+0

WebElement元= wait.until( ExpectedConditions.elementToBeClickable(By.xpath(「// a [@ title ='Kitap,Müzik,Film,Oyun']」)));這是返回零點期望 –

+1

是的,問題是,有兩個鏈接具有相同的標題,第一個是隱藏的...嘗試使用'「(// a [@ title ='Kitap,Müzik,Film,Oyun ']「)[2]'而不是... – Andersson

相關問題