как получить значение атрибута с помощью selenium и css

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

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

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

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

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

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

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

2 ответов


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

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

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

в ответ на ваш комментарий/редактировать:

  1. после @ Селена говорит, что это имя атрибут.

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

    selenium.getAttribute("css=a:contains('2')@href");
    

изменение 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");
        }