我正在尝试自动测试我的网页。在网页上,我需要选择一个带有类名和文本的锚点。锚点包含在div元素中。
<div class="margins0300">
<a tabindex="-32768" class="buttonLinkText">Hilfe</a>
</div>
我正在尝试使用
<a>
Internet Explorer Webdriver访问Selenium
,但无法访问。这是我的代码:driver.FindElement(By.XPath("//a[contains(@class,'buttonLinkText') and .//text()='Hilfe']"));
但是当我执行它时,没有找到元素。
如果有人可以帮助我,我将不胜感激。
最佳答案
实际上,您尝试使用xpath
查找元素时将语法传递为By.CssSelector()
,这是错误的。您应该尝试使用By.Xpath()
如下:-
driver.FindElement(By.Xpath("//a[@class = 'buttonLinkText' and text() = 'Hilfe']"));
您还可以使用
By.LinkText()
来查找此元素,如下所示:-driver.FindElement(By.LinkText("Hilfe"));
编辑:-如果仍然找不到此元素,请尝试使用
WebDriverWait
等到元素存在,如下所示:-IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(3))
IWebElement element = wait.Until(ExpectedConditions.ElementExists(By.Xpath("//a[@class = 'buttonLinkText' and text() = 'Hilfe']")));
注意:-确保此元素不在任何
frame/iframe
中。如果是的话,您需要先切换frame/iframe
,然后再将元素查找为:-driver.SwitchTo().Frame("frame/iframe name or id");
//Now find the element using above code
//After doing all stuff inside frame/iframe you need to switch back to default content
driver.SwitchTo().DefaultContent();
关于html - 如何选择带有类名称的 anchor ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39290175/