我正在尝试使用C#学习一些selenium webdriver。
我的问题: 我不想使用索引访问列表。
HTML代码:
<ul class="pageNavigation">
<li><a href="/users/dashboard">» Dashboard</a></li>
<li><a href="/users">» Profile</a></li>
<li><a href="/accounts/settings">» Settings</a></li>
在 WatiN 我这样做了,
ie.List(Find.ByClass("pageNavigation")).ListItem(Find.ByIndex(2)).Links[0].Click();
Selenium如何做同样的事情?
如果这个问题有点基础,我很沮丧。
答案 0 :(得分:1)
你的xpath看起来太复杂了。顺便说一下,你为什么要访问索引?尝试这样的事情或者如果你想要
使用By.partialTextWebElement link = driver.findElement(By.linkText("Profile"));
link.click();
第二条较长的路线是
List<WebElement> links = driver.findElements(By.cssSelector("ul.pageNavigation>li>a"));
for(WebElement link:links){
String linkText = link.getText();
if(linkText.equals("oneIwanted")){
//do stuff
//get index and all
}
}
答案 1 :(得分:0)
第1步: 查找CSS选择器
css = .pageNavigation&gt;一个[HREF * = '仪表盘']
css = .pageNavigation&gt;一个[HREF = '/用户']
css = .pageNavigation&gt;一个[HREF * = '设置']
然后,C#API可用于使用上述定位器执行操作。