工作代码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')]"))