c# – Selenium:如何通过部分href找到元素?

工作代码1:

Driver.Instance.FindElement( By.XPath("//a[contains(@href,'" + PartialLinkHref + "')]" ));

工作代码2:

ReadOnlyCollection<IWebElement> linkList = Driver.Instance.FindElements(By.TagName("a"));
for (int i = 0; i < linkList.Count ; i++)
{
     if (linkList[1].GetAttribute("href").Contains(PartialLinkHref))
     {
          element.SetElement(linkList[i]);
          return element;
          break;
     }
}

解决方法:

初始选择器的问题在于您在选择器前面缺少//. //告诉XPath搜索整个html树.

这应该做的伎俩:

Driver.Instance.FindElement(By.XPath("//a[contains(@href, 'long')]"))

如果你想找到一个元素的子元素,请改用.//,例如

var element = Driver.Instance.FindElement("..some selector..")
var link = element.FindElement(".//a[contains(@href, 'long')]"))

如果要查找包含文本而不是href属性的链接,可以使用

Driver.Instance.FindElement(By.XPath("//a[contains(text(), 'long')]"))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐