1

我正在使用 Selenium 网络驱动程序。我可以登录应用程序,但在注销时卡住了,原因是找不到注销链接。我试图通过Link 和byId 找到它。我也尝试过使用 thread.sleep() 但似乎没有任何效果。

注销链接存在于所有页面中。

HTML 代码:

<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>

硒代码:

Thread.sleep(5000); 

WebElement logOut = findElementByLinkText("Logout");

logOut.click();

assertEquals("Please sign in: ", findElementBySelector("h3.loginTitle.centerAlign").getText());
4

2 回答 2

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();
    }
于 2013-07-24T07:46:45.740 回答
0
driver.findElement(By.xpath("@value='Logout'")).click();
于 2013-01-23T16:34:01.907 回答