Selenium C#:按标题获取元素



我想按标题获取一个元素,我不知道在Selenium C#中是否有通用的解决方案。以下是HTML 的示例

<div class="student">
<a href="abcxyz.com">
<span class="title"> ZZZ</span>
</a>
</div>

另一个例子

<div class="page">
<a href="asdf.com" class="button-1" title="ZZZ"> </a>
</div>

当然,如果只有一页,我会像一样做

FindElement(By.ClassName("page")).GetAttribute("href");

FindElement(By.ClassName("student")).GetAttribute("href")

从"title"所在的位置获取"href"。但它们有不同设计的页面,它们之间唯一的共同点就是标题。我想知道是否有任何解决方案可以让我通过"title=ZZZ"找到"href"?提前谢谢。

这两个例子不同,我将使用XPath表达式的并集(|(运算符,这两种情况都适用。如果您有更多的事例,您可以添加额外的并集运算符,然后添加新的事例XPath:

//a[@title='ZZZ']/@href | //*[@class='title'][contains(text(),'ZZZ')]/parent::a/@href

不搜索特定文本:

//a[@title]/@href | //*[@class='title']/parent::a/@href

试试这个xpath:

/a[@title="ZZZ"]/@href

相关内容

  • 没有找到相关文章

最新更新