现在我有更复杂的(至少对我来说)并且努力寻找元素(这是动态的 - 每天都在变化)。以下是它在页面上的外观。顶部是“ul”
<ul class="feed-tips" id="Grid"
以下是 50 个同名的“li”:
<li class="feed-item vevent tip-list-row"
下面其中一个“li”是
<div class="tip medium-9 small-12 column padding-reset dtstart tip-list-row__tip">
<a href="link to a page" class="summary url">Heading4</a>
因此,页面链接和标题4(在“href”中)是动态链接,从明天开始它将毫无用处。 上面是列表中的第 5 个“li”,我尝试使用 css 选择器查找元素,但它不起作用 - 这是我尝试过的:
//Open 5th from the list
driver.findElement(By.cssSelector("#Grid > li:nth-child(5) > div.tip.medium-9.small-12.column.padding-reset.dtstart.tip-list-row__tip > div.tip-match.medium-12.column > div.tip-teams > a")).click();
提前谢谢您。
最佳答案
如果您尝试使用动态 href 查找 anchor 元素,您可以使用以下 xpath:
//ul[@id='Grid']/li//div[contains(@class, 'tip-teams')]//a[@href]
我不明白整个问题,但它会列出该层次结构中具有 href 属性的所有链接。在这种情况下,请勿使用任何类型的索引。此外,不需要深入到所有层次结构。
//a[@href] - 它将为您提供所有带有 @href 的链接,而不比较任何值。
关于java - 动态元素里面有几个 'li',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46789401/