如何选择下拉选项,并应在selenium webdriver java代码中的下拉列表中单击以下值

时间:2016-11-21 10:10:31

标签: java selenium-webdriver

这里是代码html代码。这里使用java selenium代码我需要单击logout选项来关闭会话。当点击下拉按钮时,将出现注销选项,我需要点击该链接

<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 selenium代码。

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();

3 个答案:

答案 0 :(得分:0)

使用XPath获取元素的路径。 你可以使用浏览器获得XPath 例如:        element = findElement(By.xpath(&#34; // * [@ test-id =&#39; logout.php&#39;]&#34;);

答案 1 :(得分:0)

您可以尝试使用操作点击下拉列表中的元素。

   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();

答案 2 :(得分:0)

根据您的评论,您似乎被告知元素不可见。

您是否尝试过使用显式等待?因此,当您打开包含Logout选项的菜单时,您可以给它一个出现的机会,例如:

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

希望它能够找到它,你可以与之互动。