我正在尝试自动测试我的网页。在网页上,我需要选择一个带有类名和文本的锚点。锚点包含在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/

10-12 12:36