Перейти к содержимому

Фотография

Поиск элемента, если в class содержится несколько слов, разделенных пр


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1 MrNone

MrNone

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 03 апреля 2016 - 12:29

Пробую получить веб-элемент наименования товара со страницы: https://market.yande...LF560V&srnum=53. Пробовал получать его с помощью xPath и cssSelector. Однако ничего не выходит. Веб-элемент не находится. Прикрепил изображение: webElement.

Пробовал так:

webElem = driver.findElement(By.xpath("//h1[contains(@class, 'title.title_size_32.title_changeable_yes')]"));

или так

webElem = driver.findElement(By.cssSelector("h1.title.title_size_32.title_changeable_yes"));

 

Сам селектор указывает на эту строку:

<h1 class="title title_size_32   title_changeable_yes" title="LG 32LF560V">LG 32LF560V</h1>

 

Помогите пожалуйста получить этот элемент. Мне нужно получить именно через class, не касаясь ни title, ни текста, содержащегося в этом элементе.

Прикрепленные файлы

  • Прикрепленный файл  webElement.png   396,96К   1 Количество загрузок:

  • 0

#2 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 03 апреля 2016 - 13:41

А так не пробовали? Должно сработать:

//div[@class='headline__header']/h1

  • 0

#3 MrNone

MrNone

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 03 апреля 2016 - 13:46

 

А так не пробовали? Должно сработать:

//div[@class='headline__header']/h1

К сожалению, ваш вариант не подошел. Элемент не нашелся. 

Ошибка такого рода: org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document


  • 0

#4 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 03 апреля 2016 - 14:05

К сожалению, ваш вариант не подошел. Элемент не нашелся. 
Ошибка такого рода: org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document

У меня в Selenium IDE срабатывает.
Может, проблема где-то в другом месте?
  • 0

#5 MrNone

MrNone

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 03 апреля 2016 - 14:13

 

К сожалению, ваш вариант не подошел. Элемент не нашелся. 
Ошибка такого рода: org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document

У меня в Selenium IDE срабатывает.
Может, проблема где-то в другом месте?

 

Я использую для автоматизации Selenium WebDriver. В качестве запускалки использую ChromeDriver. И мне не удается найти элемент.


  • 0

#6 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 04 апреля 2016 - 07:20

Такой код работает

WebDriver driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.get("https://market.yandex.by/product/12460851?was_redir=1&hid=90639&nid=59601&text=LG%2032LF560V&srnum=53");
        WebElement we = driver.findElement(By.xpath("//div[@class='headline__header']/h1"));
        System.out.println(we.getText());

Но это для FF, для Хрома не проверял

 

Выложи свой полный код, у StaleElementReferenceException м.б. несколько причин появления


  • 0

#7 elvis

elvis

    Постоянный участник

  • Members
  • PipPipPip
  • 189 сообщений
  • Город:Tallinn


Отправлено 04 апреля 2016 - 07:21

//h1[contains(@class,'title_changeable_yes')]


  • 0

#8 DennisM

DennisM

    Новый участник

  • Members
  • Pip
  • 55 сообщений
  • ФИО:Dennis M
  • Город:Ralegh NC, USA

Отправлено 04 апреля 2016 - 14:26

//div[@class='headline']//h1

//div[contains(@class,'headline')]//h1[contains(@class,'title')]

//div[contains(@class,'product-card')]//h1[contains(@class,'title')]

И т.д.... :)


  • 0

#9 elvis

elvis

    Постоянный участник

  • Members
  • PipPipPip
  • 189 сообщений
  • Город:Tallinn


Отправлено 04 апреля 2016 - 19:49

ну и самый короткий вариант в данном случае 
(//h1)[1]


  • 1

#10 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 05 апреля 2016 - 07:10

Или через css: h1[class*='title_changeable_yes']
  • 1

#11 newromka

newromka

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:marinsky roma
  • Город:lviv

Отправлено 27 апреля 2016 - 15:01

cssSelector:

h1.title.title_size_32.title_changeable_yes

h1.title_changeable_yes

h1.title_changeable_yes[title]

h1.title_changeable_yes[title='LG 32LF560V']


  • 0

#12 DmitriyQA

DmitriyQA

    Постоянный участник

  • Members
  • PipPipPip
  • 183 сообщений
  • ФИО:Коваленко Дмитрий Владимирович
  • Город:Tel Aviv

Отправлено 02 мая 2016 - 07:29

driver.findElement(By.className("title.title_size_32")) при поиске через класс просто укажите все уникальные классы елемента через точку


  • 0

Senior QA/ Wix.com / qaacademy.net



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных