2016-11-21 106 views
0

這裏是代碼的html代碼。這裏使用java selenium代碼,我需要點擊註銷選項關閉會話。在下拉按鈕,點擊後註銷選項會出現,我需要點擊該鏈接如何選擇下拉選項,並應在硒webdriver java代碼下拉列表中點擊下面的值

<div class="sp-info"> 
abc 
<i class="fa fa-angle-down" aria-hidden="true"></i> 
</div> 
</a> 
<ul class="main-menu" style="display: block;"> 
<li> 
<a href="profile.php"> 
</li> 
<li> 
<a href="change_password.php"> 
</li> 
<li> 
<a href="logout.php"> 

在這裏是用java代碼硒。

driver.get(baseUrl + "owner/login.php"); 
       driver.findElement(By.xpath("//input[@name='admin_user_name']")).sendKeys("qwerty"); 
      driver.findElement(By.name("admin_password")).clear(); 
      driver.findElement(By.xpath("//input[@name='admin_password']")).sendKeys("12345678"); 
      driver.findElement(By.xpath("//button[@type='submit']")).click(); 

      driver.manage().timeouts().implicitlyWait(10 , TimeUnit.SECONDS); 
      WebElement wb = driver.findElement(By.xpath("//div[contains(@class,'sp-info')]")); 
      Actions mouse = new Actions(driver); 
      mouse.moveToElement(wb).click(); 
      WebElement wb1 = driver.findElement(By.xpath("//a[contains(@href,'logout.php')]")); 
      mouse.moveToElement(wb1).click(); 
+0

如何試着解決這個問題? – noor

回答

0

使用XPath獲取元素的路徑。 您可以使用瀏覽器獲取XPath。
例如: 元素= findElement(By.xpath( 「// * [@測試-ID = 'logout.php']」);

+0

謝謝。但問題是註銷選項是在下拉選項,並顯示錯誤消息爲「元素當前不可見,因此可能不會與」交互「,我用下面的代碼WebElement mySelectElm = driver.findElement(By.xpath(」// a [含有(@ HREF, 'logout.php')]「)); – shreyas

0

您可以嘗試使用行動點擊元件在所述滴Dow 。

driver.manage().timeouts().implicitlyWait(10 , TimeUnit.SECONDS); 
    wb = driver.findElement(<xpath_to_go_to_menu_dropdown>); 
    Actions mouse = new Actions(driver); 
    mouse.moveToElement(wb).click(); 
    WebElement wb1 = driver.findElement(<xpath_to_go_value_in_dropdown>); 
    mouse.moveToElement(wb1).click(); 
    mouse.build(); 
    mouse.perform(); 
0

根據您的意見,似乎你被告知該元素是不可見的。

您是否嘗試過使用明確的等待呢?所以,當你打開包含你給註銷選項菜單它有機會出現,例如:

WebDriverWait wait = new WebDriverWait(driver, 10); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[contains(@href,'logout.php')]"))); 

希望那麼它應該找到它,你可以與它進行交互。