如何使用索引或类似方法访问列表的链接

时间:2011-08-18 05:51:55

标签: selenium webdriver

我正在尝试使用C#学习一些selenium webdriver。

我的问题: 我不想使用索引访问列表。

HTML代码:

<ul class="pageNavigation">    
  <li><a href="/users/dashboard">&#187; Dashboard</a></li>
  <li><a href="/users">&#187; Profile</a></li>
  <li><a href="/accounts/settings">&#187; Settings</a></li>

WatiN 我这样做了,

ie.List(Find.ByClass("pageNavigation")).ListItem(Find.ByIndex(2)).Links[0].Click();

Selenium如何做同样的事情?

如果这个问题有点基础,我很沮丧。

2 个答案:

答案 0 :(得分:1)

你的xpath看起来太复杂了。顺便说一下,你为什么要访问索引?尝试这样的事情或者如果你想要

使用By.partialText
WebElement 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可用于使用上述定位器执行操作。