检查是否显示并启用了元素

时间:2015-07-29 13:14:27

标签: c# selenium selenium-webdriver

我正在检查我正在搜索的元素是否已显示并启用了.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>

2 个答案:

答案 0 :(得分:1)

您可以使用By.LinkText()定位器:

Driver.FindElement(By.LinkText("Services"));

答案 1 :(得分:1)

Alecxe的回答也是正确的。除此之外,如果你想要一些通用的方法,你可以尝试以下方法:

用css:

ul a[href$='Services']

使用基于xpath文本的搜索(如果文本是静态的,我更喜欢这个):

//a[text()='Services']