运行Selenium Test case时无法找到链接

时间:2012-04-25 19:36:39

标签: selenium-webdriver

我正在使用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());

2 个答案:

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