在selenium webdriver </u> </li>中收集<u> l的<li>元素

时间:2015-04-15 07:53:27

标签: selenium selenium-webdriver

我的网页上有广告列表。这些广告显示在ID为adList的标记下。从我想要点击任意广告的广告

所以我所做的如下:

List<WebElement> allads = driver.findElements(By.id("adList"));
assertNotNull(allads);
System.out.println(allads.size());
Random random = new Random();
int index = 0;
for (int i = 1; i <= allads.size(); i++) {    
      index = random.nextInt(allads.size());
}
allads.get(index).click();

但是当我运行代码时没有点击广告,当我检查allads.size()时,它显示为1,这是错误的,因为有多个ID如下所示

<ul id="adList" data-pageno="2">
<div id="feedList">
<li id="210846759">
<li id="210847160">
<li id="210845605">
<li id="210841804">
<li id="210846830">
<li id="210846163">
<li class="adbannerli">
<li id="210844135">
<li id="210845467">
<li id="210619597">
<li id="200780114">
<script type="text/javascript">
</ul>

如何获取所有li元素并点击任意随机广告

1 个答案:

答案 0 :(得分:2)

您只是尝试找到ul的列表,但事实上您需要更深入并找到所有li元素

List<WebElement> allads = driver.findElements(By.cssSelector("#adList li"));