我想按标题获取一个元素,我不知道在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