找到与2个属性值匹配的HTML元素(selenium c#)

时间:2015-07-31 10:28:48

标签: c# selenium xpath

我想通过它的 href 找到一个元素,但由于有许多元素具有相同的 href ,因此我想指定另一个匹配的属性该元素例如 href 和__class_将使此元素唯一。)

 FindElement(By.Xpath("//div[contains(@class, 'bla bla') and a//[contains(@href, 'My element')]"));

<div class="bla bla">

            <ul class="list-unstyled">
                <li class="test">Our job</li>
                    <li><a href="/123">123</a></li>

我要找的是href“ / 123 ”的元素

有任何建议我如何才能完成这项工作?

1 个答案:

答案 0 :(得分:1)

鉴于你的描述:

  

我正在寻找的是这个href(/ 123)

这是如何找到它:

WebElement blabla = driver.findElement(By.className("bla bla"));
blabla.findElement(By.linkText("123"));

或一次性通过xpath:

driver.findElement(By.xpath("//div[@class = 'bla bla']//a[@href = '/123']"));

但是在你的文字中你说过你的几个链接有相同的href?您的示例仅包含一个链接,因此包含一个唯一的href。 如果是这种情况,则需要在父元素中查找更多唯一定位器。

以上是Java,因此要保留第一行C#代码,请执行以下更改:

FindElement(By.Xpath("//div[contains(@class, 'bla bla')]//a[contains(@href, 'My element')]"));