这里是代码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();
答案 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')]")));
希望它能够找到它,你可以与之互动。