java - 动态元素里面有几个 'li'

标签 java selenium

现在我有更复杂的(至少对我来说)并且努力寻找元素(这是动态的 - 每天都在变化)。以下是它在页面上的外观。顶部是“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/

相关文章:

java - 如何迭代bean/对象中的所有属性/字段,包括引用对象/Bean

Java for 循环迭代

java - @test注解的后台发生了什么?

python - 使用 selenium 获取检查元素源的 html

java - safardriver 在 @Aftermethod 中调用 driver.close() 之前自动关闭

如果 Web 表单中没有 ID 值,Python Selenium 自动登录问题

java - 如何在 JSP 中循环遍历 HashMap?

java - 类未增强错误

java - 如何使用 Selenium 在文本区域中输入制表符?

java - 在 Selenium WebDriver 中找不到元素时杀死 NoSuchElementException 或任何异常的最快方法