Selenium webdriver无法单击注销

时间:2016-02-03 11:46:07

标签: selenium selenium-webdriver

driver.findElement(By.linkText("Log Out")).click();

我使用上面的代码行注销。直到昨天它正在运行,但今天却没有。

我在xpath下面使用过: -

driver.findElement(By.xpath("/html/body/div/div[3]/div[1]/div/ul[2]/li/div/ul/li[3]/a")).click();

它仍然不起作用, 后来我发现我专注于注销选项而不是注销操作。 为什么会这样? 为什么它昨天工作但今天不工作?

4 个答案:

答案 0 :(得分:0)

一个可能的问题可能是您的浏览器正在加载已注销登录按钮的缓存页面。您需要提供更严格的Xpath并等待确保整个页面加载

" / HTML /体/ DIV / DIV [3] / DIV [1] / DIV / UL〔2〕/ LI / DIV / UL /锂[3] / A"

严格要求 -

driver.findElement(By.xpath(" //按钮[文本()='注销']&#34))。单击();

答案 1 :(得分:0)

尝试使用

driver.findElement(By.partialLinkText("Log Out")).click();

driver.findElement(By.xpath("//a[contains(text(),'Log Out')]")).click();

答案 2 :(得分:0)

堆栈跟踪可能对您找到解决方案非常有帮助。 可能是,

  • 注销的下拉菜单条目需要很短的时间才能可见? Selenium就像一个用户,可以与可见元素进行交互。

    • 您可以点击下拉列表,使用WebDriverWait.Until(..)等到它出现并使用它

    • 另一种方法可能是直接导航以注销网址。

  • 链接文字已更改(空格,大写字母..)

答案 3 :(得分:0)

尝试这样做 -

WebElement element = driver.findElement(By.linkText("Log Out"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);