Разработка теста на Java с использованием xPath с помощью Selenium Web
#1
Отправлено 10 июля 2013 - 13:56
"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. Буду благодарна, если кто то подскажет. Заранее спасибо
#2
Отправлено 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[.='ПроверяемыйТекст']
#3
Отправлено 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
#4
Отправлено 10 июля 2013 - 14:35
Надо указывать элемент через Xpath, статью определенную тоже надо будет искать по XPath. Вам надо смотреть исходный код страницы и на основании этого уже писать xpath выражение.Спасибо! А если мне необходимо зайти на главную страницу http://www.globallogic.com.ua/ и перейти в раздел Blogs и найти там определенную статью, это значит, что при помощи xPath мне необходимо найти элемент Blog, который является кнопкой? правильно я понимаю?
Т.е должно выглядеть так:
element2 = wd.findElement(By.xpath(".//*[@id='BLOG']"));
element2.click();
Судя по сайту, Вам придётся сначала навестись на один элемент, а потом уже кликать на ссылку в блоги.
Используется для получения текста элемента и для сравнения его с другим текстом.И еще не совсем понимаю для чего нужны методы getText().contains("some test") и как их использовать в данном случае?
#5
Отправлено 11 июля 2013 - 05:56
И еще не совсем понимаю для чего нужны методы getText().contains("some test") и как их использовать в данном случае?
Используется для получения текста элемента и для сравнения его с другим текстом.
contains используется для проверки содержимого , а не сравнения) для сравнения нужно использовать equals
#6
Отправлено 11 июля 2013 - 07:42
#7
Отправлено 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");
и так дальше?
#8
Отправлено 11 июля 2013 - 13:31
И то и то сравнивает текст полученный из элемента с текстом в кавычках и возвращает true или false. Только equals проверяет полное соответствие, а contains частичное.contains используется для проверки содержимого , а не сравнения) для сравнения нужно использовать equals
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных