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

collect <li> elements of <u>l in 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 元素并点击任意随机广告

您只是试图找到 ul 的列表,但实际上您需要更深入地查找所有 li 个元素

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