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

Фотография

Selenium поиск текста в определенном месте страницы

selenium find_text_driver

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

#1 CEBEP

CEBEP

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

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

Отправлено 10 июня 2015 - 13:43

Необходимо поставить условие по вхождению определенного текста в блок h1 инструментами python + selenium.

 

Реализую след. код:

driver.find_element_by_xpath("//h1[contains(text(), 'мой текст')]")

 

>>> selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"xpath","selector":"//h1[contains(text(), 'мой текст')]"}

 

Буду благодарен за помощь в данном вопросе.


  • 0

#2 aksas

aksas

    Активный участник

  • Members
  • PipPip
  • 130 сообщений
  • Город:Харьков

Отправлено 10 июня 2015 - 14:01

хм, может на странице нет такого текста и селениум об этом и говорит?


  • 0

#3 CEBEP

CEBEP

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

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

Отправлено 10 июня 2015 - 14:05

Я делаю через условие, а ругается интерпретатор на само xpath выражение. Думаю проблему нужно искать в синтаксисе...


  • 0

#4 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 10 июня 2015 - 14:09

Локатор вроде составлен верно, уверены, что он есть на странице? Регистр имеет значение.


  • 0

#5 CEBEP

CEBEP

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

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

Отправлено 10 июня 2015 - 14:19

Я пишу так:

...

if driver.find_element_by_xpath("//h1[contains(text(), 'мой текст')]"):

bad_output.write(line)

else:
good_output.write(line)

...

Даже если 'мой текст' отсутствует срабатывает else...


  • 0

#6 aksas

aksas

    Активный участник

  • Members
  • PipPip
  • 130 сообщений
  • Город:Харьков

Отправлено 10 июня 2015 - 15:06

нет, если текста нет, то селениум возвращет исключение NoSuchElementException

чтоб было как вы хотите надо писать

try:
   driver.find_element_by_xpath("//h1[contains(text(), 'мой текст')]")
   good_output.write(line)
except NoSuchElementException:
   bad_output.write(line)

или

e = driver.find_element_by_xpath("//h1")
if 'мой текст' in e.text:
   good_output.write(line)
else:
   bad_output.write(line)

  • 1

#7 CEBEP

CEBEP

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

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

Отправлено 11 июня 2015 - 17:12

Спасибо, сработал следующий вариант:

 

try:

   driver.find_element_by_xpath("//div[@id='content-top']/h1/span[contains(text(), 'мой текст')]")
   good_output.write(line)
except NoSuchElementException:
  bad_output.write(line)


  • 0

#8 kotovsky18

kotovsky18

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

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

Отправлено 05 августа 2015 - 09:58

Всем привет, есть вопрос :

selenium + testNG + Idea

нужно найти текст, но чтоб тест дальше сам прошел, с "assert" я разобрался, а вот "verify" не могу сделать. вот часть кода с "assert" :

 

protected boolean isTextPresent(String text){
try {
boolean b = wd.getPageSource().contains(text);
return b;
}
catch(Exception e){
return false;
}
}

@Test
public void ыуфкср() {
wd.get("http://...");
wd.findElement(By.name("term")).click();
wd.findElement(By.name("term")).clear();
wd.findElement(By.name("term")).sendKeys("найти");
wd.findElement(By.cssSelector("button")).click();
wd.findElement(By.linkText("...")).click();
assertTrue(isTextPresent("Книга одного из самых "));
wd.findElement(By.cssSelector("article")).click();

...

}

если текст не верный, тест останавливается


  • 0

#9 Vad1m198

Vad1m198

    Активный участник

  • Members
  • PipPip
  • 115 сообщений
  • ФИО:Вадим


Отправлено 05 августа 2015 - 11:53

есть такая библиотека assertj (http://joel-costigli...hub.io/assertj/)

Она позволяет делать "soft assertions". Если какой то assert будет false тест не остановится пока не выполнится команда softly.assertAll();

 

SoftAssertions softly = new SoftAssertions();

softly.assertThat...
softly.assertThat...

 

softly.assertThat...

softly.assertAll();


  • 0

#10 kotovsky18

kotovsky18

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

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

Отправлено 05 августа 2015 - 12:26

спс буду пробовать, отпишу что и как


  • 0

#11 appmen

appmen

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

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 06 августа 2015 - 07:41

в ТестНГ с версии 6,8 тоже есть софт асерты


  • 0



Темы с аналогичным тегами selenium, find_text_driver

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

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