需要你的帮助! 我无法点击'退出',这是来自Firebug的快照:
<li class="dropdown open">
<a class="dropdown-toggle" aria-expanded="true" aria-haspopup="true" role="button" data-toggle="dropdown" href="#">
<ul class="dropdown-menu">
<li class="dropdown-header">email_id@xyz.com</li>
<li class="signout">
<form id="form0" class="" method="post" action="/_Account/Logout">
<input type="hidden" value="mkEfSz6-X9flSbOQ6IA39rVPnHnX6gethyjNrisgAcWerf0QL7oaL1zaTFC5j9omCdvfTtjEICuRqpuPjIiiHmnog5EOBMeOHkXD7ccphD8d6BISw46JmAYfm5ZrMksC0oe91g2" name="__RequestVerificationToken">
<input class="btn btn-block btn-primary btn-block" type="submit" value="Sign Out">
</form>
<script type="text/javascript">
尝试过:
driver.findElement(By.xpath("//div/ul[2]/li/ul/li[2]")).click();
driver.findElement(By.xpath("//input[@value='Sign Out']")).click();
这也是(不确定这是否正确):
Select DropdownList = new Select(driver.findElement(By.xpath("//form[@id='form0']/input[2]")));
DropdownList.selectByVisibleText("Sign Out");
答案 0 :(得分:0)
尝试这样:
/backup
答案 1 :(得分:0)
该元素似乎是隐藏的,所以这是你的第一个障碍,但尝试下面,看看是否有效。您可能必须上升(或下调)另一个级别才能使其工作。 PS。我没有运行代码,因此请注意任何错误。
driver.findElement(By.cssSelector(“li [class ='signout'] class [value ='Sign Out']”))。click();
答案 2 :(得分:0)
我认为您正在正确指定元素,但让我们尝试使用CSS选择器。
driver.findElement(By.cssSelector("input[value='Sign Out']")).click();
如果这不起作用,请尝试这样做,看看是否有其他元素偶然发现。这里的回报应为1。
System.out.println(driver.findElements(By.cssSelector("input[value='Sign Out']")).size());
此退出按钮附近是否有SELECT
下拉列表?我有这种预感,Selenium试图点击你的INPUT
代码,但它以某种方式点击SELECT
代码。也许它不可见或者什么???
还要检查此元素是否在IFRAME
范围内。这又回来了什么?希望0。
System.out.println(driver.findElements(By.cssSelector("iframe input[value='Sign Out']")).size());