2016-11-21 118 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')]"))); 

希望那么它应该找到它,你可以与它进行交互。

相关问题