我试图根据另一个元素的名称单击一个值(奇数),但是这两个值必须位于特定的父元素中,而该父元素是通过其中的文本获得的。
可以在同一页面上使用相同的类别多次找到以下代码段,因此按类别定位是不可选项。
我首先需要获得一个带有文本“第一个目标”的容器。然后,我需要获取它的父级,在父级中,我需要获取第二个div元素(class parent2)。该元素包含其他元素。让我们想象一下需要获取值200的元素并单击它。
我尝试使用parentElement,parentNode,但是尽管成功检索了子元素,但在获取子元素的父元素时始终会得到“ undefiend”。我只是无法从树的下方找到想要的元素并单击它的父元素。
<div class="group ">
<div class="parent1 "><span>1st Goal</span></div>
<div class="parent2">
<div class="container ">
<div">
<div><span>Malaga</span><span class="odds">200</span></div>
<div><span>No 1st Goal</span><span class="odds">300</span></div>
<div><span>Las Palmas</span><span class="gll-odds">400</span></div>
</div>
</div>
</div>
<div></div>
</div>
答案 0 :(得分:1)
如果可以使用XPath表达式,则可以使用以下语句:
//div[contains(@class, "group") and contains(., "1st Goal")]/div[@class="parent2"]//span[@class="odds"]
此XPath表达式查询一个div
元素,该元素具有类group
并在某处包含文本 1st Goal 。然后它将查询类别为div
的子项parent2
,并在内部查询类别为span
的{{1}}元素。
要使用伪造者获得元素,请使用page.$x
函数。要单击元素,请使用elementHandle.click
。
放在一起,代码看起来像这样:
odds
答案 1 :(得分:0)
const parent_node = await child_node.getProperty('parentNode')
你可以试试这个