Как получить доступ к ссылке в списке, используя индекс или подобное - PullRequest
0 голосов
/ 18 августа 2011

Я пытаюсь выучить какой-нибудь селеновый веб-драйвер с помощью C #.

Моя проблема: Я не хочу получать доступ к списку с помощью индекса.

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 ]

1 голос
/ 18 августа 2011

Ваш 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
                    }
                }
0 голосов
/ 02 апреля 2014

Шаг 1: Найти селекторы CSS

css = .pageNavigation> a [href * = 'панель инструментов']

css = .pageNavigation> a [href = '/ users']

css = .pageNavigation> a [href * = 'settings']

Затем C # API можно использовать для выполнения операций с использованием вышеуказанных локаторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...