Selenium - 如何仅在特定div中搜索元素?

时间:2012-08-22 20:24:51

标签: php selenium

我的代码中有一个元素,在许多地方的许多页面上使用。具体来说,它是一个日历元素。该元素包含许多部分,但无论在何处使用,这些内部部分始终相同。我想做的是搜索日历元素内部的内容,无论日历元素在哪里。

就像简化案例一样,请考虑以下事项:

<div class="not-calendar">
    <a href="/not-calendar-link">A Link</a>
</div>
<div class="calendar">
    <a href="/calendar-link">A Link</a>
</div>

现在,我想做一些事情:

$this->click("//a[text()='A Link']");

但这是模棱两可的。我想对A链接文本执行相同类型的“搜索”,但只在div中使用类日历搜索。请记住,我不希望直接XPath到日历div,因为我希望它出现在许多页面上的不同位置。我该怎么做呢?非常感谢!

1 个答案:

答案 0 :(得分:1)

Xpath功能非常强大,您是否尝试过检查文档?

//bbb      Selects all bbb elements no matter where they are in the document
aaa/bbb    Selects all bbb elements that are children of aaa
aaa//bbb   Selects all bbb elements that are descendant of the aaa element, no matter where they are under the aaa element

您正在寻找的表达方式://div[@class='calendar']/a