无法单击SignOut按钮

时间:2015-08-21 08:48:56

标签: java selenium selenium-webdriver

需要你的帮助! 我无法点击'退出',这是来自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");

3 个答案:

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