Java 无法使用selenium webdriver 3.0.1单击注销链接

Java 无法使用selenium webdriver 3.0.1单击注销链接,java,selenium,selenium-webdriver,webdriver,Java,Selenium,Selenium Webdriver,Webdriver,我已经编写了以下代码,以便在登录后从服务器注销。但是当我使用firefox浏览器运行下面的代码时,代码运行没有任何问题,但是webdriver没有单击注销链接 你能给我同样的建议吗 注意:同样的代码在chrome浏览器上也能正常工作 我正在使用: Firefox版本:49.0.1Chrome版本:54.0.2840.59 mSelenium 版本:3.0.1OS:Win10 64位Java:1.8 只有在下拉列表中滚动后,才能看到注销链接 First Rule: For clicking on

我已经编写了以下代码,以便在登录后从服务器注销。但是当我使用firefox浏览器运行下面的代码时,代码运行没有任何问题,但是webdriver没有单击注销链接

你能给我同样的建议吗

注意:同样的代码在chrome浏览器上也能正常工作

我正在使用:

Firefox版本:49.0.1Chrome版本:54.0.2840.59 mSelenium 版本:3.0.1OS:Win10 64位Java:1.8


只有在下拉列表中滚动后,才能看到注销链接

First Rule: For clicking on element - that element should be visible on screen.
Second Rule: To make it visible you need to scroll to that element.
在打开“用户”下拉列表后,写下下面的代码

WebElement ele = driver.findElement(By.xpath(".//*[@id='responsiveHeader']/div[1]/div[1]/ul/li[4]/ul/li[9]/a")); // Sign Out element 
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView(true);", ele); // scrolling upto "Sign Out" element.
// Quikr has some problem of scrolling in website - so, we have to again scroll to top.
js.executeScript("scroll(0, 0);");
driver.findElement(By.linkText("Sign Out")).click();

此代码运行良好。我已经测试过了。如果您喜欢它并且它对您很好,那么接受只有在下拉列表中滚动后才可见的注销链接

First Rule: For clicking on element - that element should be visible on screen.
Second Rule: To make it visible you need to scroll to that element.
在打开“用户”下拉列表后,写下下面的代码

WebElement ele = driver.findElement(By.xpath(".//*[@id='responsiveHeader']/div[1]/div[1]/ul/li[4]/ul/li[9]/a")); // Sign Out element 
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView(true);", ele); // scrolling upto "Sign Out" element.
// Quikr has some problem of scrolling in website - so, we have to again scroll to top.
js.executeScript("scroll(0, 0);");
driver.findElement(By.linkText("Sign Out")).click();

此代码运行良好。我已经测试过了。如果您喜欢它,并且它对您来说运行良好,那么请接受

试用firefox的最新gecko驱动程序(目前为v.0.11.1)。另一种选择是,尝试使用动作链-双击。尝试使用firefox的最新gecko驱动程序(目前为v.0.11.1)。另一种选择是,尝试使用动作链-双击。感谢Yojna提供的解决方案。但我有一个问题,在chrome中,如果不显式滚动到元素,代码就可以正常工作。这怎么可能呢?chrome驱动程序和firefox中的javascript执行方法是不同的。我可以看到,在chrome驱动程序中,无需在下拉列表中滚动即可看到注销。所以,不需要在chrome驱动程序中滚动。您的代码应该非常适合在所有浏览器上运行。感谢Yojna提供的解决方案。但我有一个问题,在chrome中,如果不显式滚动到元素,代码就可以正常工作。这怎么可能呢?chrome驱动程序和firefox中的javascript执行方法是不同的。我可以看到,在chrome驱动程序中,无需在下拉列表中滚动即可看到注销。所以,不需要在chrome驱动程序中滚动。您的代码应该非常适合在所有浏览器上运行。