使用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不会出现上述问题。
答案 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")));
使用上述两个等待解决了我的问题。