0

对于 selenium 用户来说,这可能是一个简单的问题:

我知道我们在查找元素时可以使用的一些属性,例如:名称、标记名、Css 等。

但是我们可以在 c# 中使用“link=-----”之类的东西来基于该属性查找元素吗?

图像是我使用 Selenium IDE Recorder 时获得的属性

4

1 回答 1

1

不熟悉 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
}
于 2013-07-10T04:49:33.430 回答