Как получить значение атрибута с использованием селена и CSS - PullRequest
6 голосов
/ 26 августа 2011

У меня есть следующий HTML-код:

<a href="/search/?p=2&q=move&mt=1"> 2 </a>

Я хотел бы получить то, что содержится в href, т.е. я искал команду, которая выдала бы мне значение "/ search /? P = 2 & q = move & mt = 1" для href.

Может ли кто-нибудь помочь мне с соответствующей командой и локатором css в селене для вышеуказанного запроса?

если у меня есть что-то вроде:

<a href="/search/?p=2&q=move&mt=1"> 2 </a> 
<a href="/search/?p=2&q=move&mt=2"> 3 </a> 

Из этих двух, если бы я получил значение атрибута для href, чей текст содержит '2', то как бы выглядел мой синатекс локатора css?

Ответы [ 2 ]

6 голосов
/ 26 августа 2011

Если ваш HTML состоит только из одного тега <a>, то это должно сделать это:

String href = selenium.getAttribute("css=a@href");

Вы используете метод DefaultSelenium#getAttribute() и передаете локатор CSS, символ @ и имя атрибута, который хотите получить. В этом случае вы выбираете a и получаете его @href.

В ответ на ваш комментарий / правку:

  1. Часть после @ сообщает Selenium, что эта часть является именем атрибута.

  2. Вы должны поместить :contains('2') перед @href, потому что это часть локатора, а не атрибута. Итак, вот так:

    selenium.getAttribute("css=a:contains('2')@href");
    
2 голосов
/ 24 июля 2013

Изменение css = a @ href на href должно помочь. Позвольте мне, если это не сработало.

    List<WebElement> ele = driver.findElements(By.className("c"));
        for(WebElement e : ele)
        {
           String doctorname = e.getText();
           String linkValue = e.getAttribute("href");
        }
...