我正在使用Selenium webdriver。我可以登录到应用程序,但是在注销时它会卡住,因此无法找到注销链接。我试图通过链接和byId找到它。我也尝试过使用thread.sleep()但似乎没有任何工作。
所有页面都有退出链接。
HTML code:
<li>#{loginView.loggedInUser}>
<ul><li><h:link value="Administration" outcome="Administration.xhtml" /></li>
<li><h:commandLink value="Logout" actionListener="#{loginView.logout}">
<f:param id="userName" value="#{loginView.username}" />
</h:commandLink></li>
</ul></li>
SELENIUM代码:
Thread.sleep(5000);
WebElement logOut = findElementByLinkText("Logout");
logOut.click();
assertEquals("Please sign in: ", findElementBySelector("h3.loginTitle.centerAlign").getText());
答案 0 :(得分:2)
使用此代码检查页面上是否存在多少链接(如果它包含您的注销链接),然后您可以使用定位器“linktext”单击它。
public void Link(){
driver.get(baseUrl);
HtmlTagFinder links = LinkFinder.links();
List<WebElement> allLinks = (List<WebElement>) links.findFrom(driver);
System.out.println(allLinks.size());
int i = 1;
for(WebElement link : allLinks){
System.out.println(i);
System.out.println(link.getText());
i++;
}
driver.close();
driver.quit();
}
答案 1 :(得分:0)
driver.findElement(By.xpath("@value='Logout'")).click();