对于 selenium 用户来说,这可能是一个简单的问题:
我知道我们在查找元素时可以使用的一些属性,例如:名称、标记名、Css 等。
但是我们可以在 c# 中使用“link=-----”之类的东西来基于该属性查找元素吗?
不熟悉 Selenium IDE,我假设这里的link=601-800 students
意思是<a href='something'>601-800 students</a>
.
然后您可以使用By.XPath
来定位带有文本的链接,或者使用By.LinkText
, 甚至By.PartialLinkText
.
driver.FindElement(By.XPath("//a[text()='601-800 students']"));
//driver.FindElement(By.LinkText("601-800 students"));
编辑:
如果您有一些具有相同文本的链接,请尝试识别唯一的祖先。
例如
var headLink = driver.FindElement(By.XPath("//*[@id='header']//a[text()='601-800 students']"));
var mainLink = driver.FindElement(By.XPath("//*[@id='main']//a[text()='601-800 students']"));
如果这不可能,请通过FindElements
(注意这不是FindElement
)将它们放在一起,然后将它们编入索引。
IList<IWebElement> links = driver.FindElements(By.XPath("//a[text()='601-800 students']"));
//IList<IWebElement> links = driver.FindElements(By.LinkText("601-800 students"));
var firstLink = links[0];
var secondLink = links[1];
foreach(IWebElement link in links) {
// stuff to do with link
}