Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我们可以使用;链接“;元素查找的属性?_C#_Selenium - Fatal编程技术网

C# 我们可以使用;链接“;元素查找的属性?

C# 我们可以使用;链接“;元素查找的属性?,c#,selenium,C#,Selenium,对于selenium用户来说,这可能是一个简单的问题: 我知道在查找元素时可以使用的一些属性,如:名称、标记名、Css等 但是我们可以在c中使用类似“link=----”的东西来基于该属性进行元素查找吗 不熟悉Selenium IDE,这里我假设link=601-800学生的意思类似于 然后,您可以使用By.XPath查找带有文本的链接,或者使用By.LinkText,甚至使用By.PartialLinkText driver.FindElement(By.XPath("//a[text()='

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

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

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


不熟悉Selenium IDE,这里我假设
link=601-800学生
的意思类似于

然后,您可以使用
By.XPath
查找带有文本的链接,或者使用
By.LinkText
,甚至使用
By.PartialLinkText

driver.FindElement(By.XPath("//a[text()='601-800 students']"));
//driver.FindElement(By.LinkText("601-800 students"));
编辑:

如果您有一些具有相同文本的链接,请尝试识别唯一的祖先

例如

如果不可能,请通过
FindElement
(注意这不是
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
}
IList links=driver.FindElements(By.XPath(“//a[text()='601-800 students']);
//IList links=driver.FindElements(By.LinkText(“601-800学生”);
var firstLink=links[0];
var secondLink=links[1];
foreach(链接中的IWebElement链接){
//与link有关的东西
}

@user1177636:HTML在某种意义上很像??谢谢..它可以工作..我们也可以在这里使用“LinkText”。但是,如果在同一个名称下存在多个字段,我们如何区分呢?不,我不认为通过
by.LinkText
可以做到这一点。但是,根据具体情况,
By.XPath
也有可能。另一种方法是,您获得具有相同文本的链接,然后通过
someLinks[0]
someLinks[3]
等对它们进行索引。再次感谢您的帮助。但如果我也索引,是否可以根据索引编号选择每个索引?是的,使用for或foreach循环进行循环。答案再次更新。那么,var firstLink=links[0]的用途是什么;var secondLink=links[1];如果我有3个同名条目,是否会“string text=link.text;”选择我们需要的条目(可能是第3个条目或第2个条目)?
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
}