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

Фотография

Разработка теста на Java с использованием xPath с помощью Selenium Web


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

#1 hanna_ign

hanna_ign

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Игнатенко Анна

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

Доброго времени суток! Такая проблема: необходимо разработать тест на Java (Eclise IDE) с использованием Selenium WebDriver. Вот непосредственно само задание:

"Your task execution should be started from start of Browser (Internet Explorer, FireFox or Chrome). Use xPath expressions to verify a text that should be present (or somewhere you can use xPath to click necessary element). To compare necessary text use sequence of methods getText().contains("some test") for variable of WebElement.

Task: From the start page of globallogic.com.ua navigate to Blogs section. Select the new about Azarov, who has met with IT representatives and ensure that this article is opened."

Есть вот такой пример, но без использования xPath, для регистрации на сайте mail.ru

WebDriver wd = new FirefoxDriver();
wd.get("http://mail.ru");
WebElement element = wd.findElement(By.name("Login"));
element.sendKeys("tests_for_selenium");
WebElement element1 = wd.findElement(By.name("Password"));
element1.sendKeys("ABC_TESTERS");
WebElement element2 = wd.findElement(By.id("mailbox__auth__button"));
element2.click();

я не совсем понимаю как в этом случае необходимо использовать xPath. Буду благодарна, если кто то подскажет. Заранее спасибо
  • 0

#2 Keiga

Keiga

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

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


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

я не совсем понимаю как в этом случае необходимо использовать xPath. Буду благодарна, если кто то подскажет. Заранее спасибо

XPath используется для нахождения определенных элементов на странице.
В Вашем примере:
WebElement element2 = wd.findElement(By.id("mailbox__auth__button"));
Будет например так:
WebElement element2 = wd.findElement(By.xpath(".//*[@id='mailbox__auth__button']"));

Вам же требуется написать полноценный тест в котором все используемые элементы будут находится по XPath. В XPath так же можно использовать проверку на наличие определенного текста в элементе, по шаблону:
.//element[.='ПроверяемыйТекст']

  • 0

#3 hanna_ign

hanna_ign

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Игнатенко Анна

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


я не совсем понимаю как в этом случае необходимо использовать xPath. Буду благодарна, если кто то подскажет. Заранее спасибо

XPath используется для нахождения определенных элементов на странице.
В Вашем примере:
WebElement element2 = wd.findElement(By.id("mailbox__auth__button"));
Будет например так:
WebElement element2 = wd.findElement(By.xpath(".//*[@id='mailbox__auth__button']"));

Вам же требуется написать полноценный тест в котором все используемые элементы будут находится по XPath. В XPath так же можно использовать проверку на наличие определенного текста в элементе, по шаблону:
.//element[.='ПроверяемыйТекст']



Спасибо! А если мне необходимо зайти на главную страницу http://www.globallogic.com.ua/ и перейти в раздел Blogs и найти там определенную статью, это значит, что при помощи xPath мне необходимо найти элемент Blog, который является кнопкой? правильно я понимаю?

Т.е должно выглядеть так:
element2 = wd.findElement(By.xpath(".//*[@id='BLOG']"));
element2.click();

И еще не совсем понимаю для чего нужны методы getText().contains("some test") и как их использовать в данном случае?

Сообщение отредактировал hanna_ign: 10 июля 2013 - 14:28

  • 0

#4 Keiga

Keiga

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

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


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

Спасибо! А если мне необходимо зайти на главную страницу http://www.globallogic.com.ua/ и перейти в раздел Blogs и найти там определенную статью, это значит, что при помощи xPath мне необходимо найти элемент Blog, который является кнопкой? правильно я понимаю?

Т.е должно выглядеть так:
element2 = wd.findElement(By.xpath(".//*[@id='BLOG']"));
element2.click();

Надо указывать элемент через Xpath, статью определенную тоже надо будет искать по XPath. Вам надо смотреть исходный код страницы и на основании этого уже писать xpath выражение.
Судя по сайту, Вам придётся сначала навестись на один элемент, а потом уже кликать на ссылку в блоги.

И еще не совсем понимаю для чего нужны методы getText().contains("some test") и как их использовать в данном случае?

Используется для получения текста элемента и для сравнения его с другим текстом.
  • 1

#5 streLerr

streLerr

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:test tes test
  • Город:Воронеж

Отправлено 11 июля 2013 - 05:56

И еще не совсем понимаю для чего нужны методы getText().contains("some test") и как их использовать в данном случае?
Используется для получения текста элемента и для сравнения его с другим текстом.


contains используется для проверки содержимого , а не сравнения) для сравнения нужно использовать equals
  • 1

#6 appmen

appmen

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

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

Отправлено 11 июля 2013 - 07:42

а можно узнать где раздают задания по Селениуму? Может и я чего поделал бы... :blush:
  • 0

#7 Nwd

Nwd

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

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

Отправлено 11 июля 2013 - 08:19

WebElement element = wd.findElement(By.name("Login"));
element.sendKeys("tests_for_selenium");
WebElement element1 = wd.findElement(By.name("Password"));
element1.sendKeys("ABC_TESTERS");
WebElement element2 = wd.findElement(By.id("mailbox__auth__button"));
element2.click();


Не уверен что в этом случае вообще нужно обьявление элемента. После логина ты с ним вообще работать не будешь, поэтому хранить его нет смысла. Не лучше просто:

wd.findElement(By.name("Login")).sendKeys("tests_for_selenium");

и так дальше?
  • 0

#8 Keiga

Keiga

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

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


Отправлено 11 июля 2013 - 13:31

contains используется для проверки содержимого , а не сравнения) для сравнения нужно использовать equals

И то и то сравнивает текст полученный из элемента с текстом в кавычках и возвращает true или false. Только equals проверяет полное соответствие, а contains частичное.
  • 1


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

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