在没有id属性

时间:2016-05-06 08:28:32

标签: selenium firefox phantomjs visibility

使用cssSelector,我能够找到一些具有id属性的元素。例如:

li[id='header-mypage-top']>a

并使用Selenium 2(WebDriver)中的isDisplayed(),它被认为是真的。

我的问题是点击下面的一些链接,我可以使用xpath找到它,但使用isDisplayed()找到false。

<li class="logout" data-action-url="www.xxx.co.jp/yyy">
    <a href="javascript:void(0)">ログアウト</a>
</li>

我试图找到使用以下代码:

List<WebElement> elements =     driver.findElements(By.xpath("//li[@class='logout']/a"));
System.out.println("Logout item size: "+elements.size());

大小显示为1,但isDisplayed()返回false。

如何让这个元素可见并且能够点击它?

我使用的是PhantomJS 2.1.1。 Firefox不会出现上述问题。

2 个答案:

答案 0 :(得分:1)

我猜这个元素(在这种情况下,&#34; logout&#34;)没有按特定时间正确加载。所以你可以使用如下的显式等待:

SELECT SUM(Amount1), SUM(Amount2), COUNT(Text1) FROM Table1 GROUP BY TABLE_ROW_ID

答案 1 :(得分:0)

这是我找到的解决方案:

    wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//li[@class='logout']/a")));
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//li[@class='logout']/a")));

使用上述两个等待解决了我的问题。