我正在检查我正在搜索的元素是否已显示并启用了.Xpath。 像这样:
var element = Driver.FindElement(By.XPath("//a[contains(@href,'/Services')]"));
if (element.Displayed && element.Enabled)
{
Result.Pass(52);
}
else
{
Result.Fail(52);
}
返回Displayed(false)和Enabled(true), 但实际元素在网站上可见。
当我检查网站上的元素时,它是这样的:
<a href="/Services">Services</a>
有什么建议吗?
更多HTML代码:
<ul class="list-unstyled">
<li class="footer-heading">my website</li>
<li><a href="/">Home</a></li>
<li><a href="/Search">Item search</a></li>
<li><a href="/Services">Services</a></li>
<li><a href="/Services/AreaGuides">Area guides</a></li>
<li><a href="/Services/Client">Client</a></li>
</ul>
答案 0 :(得分:1)
您可以使用By.LinkText()
定位器:
Driver.FindElement(By.LinkText("Services"));
答案 1 :(得分:1)
Alecxe的回答也是正确的。除此之外,如果你想要一些通用的方法,你可以尝试以下方法:
用css:
ul a[href$='Services']
使用基于xpath文本的搜索(如果文本是静态的,我更喜欢这个):
//a[text()='Services']