Selenium IDE - регистрация на тест-драйв. (WEB)


(Kisel Eugen) #1

Такая ситуация:
Пишу при помощи Selenium IDE автотест для регистрации на тест-драйв.
Весь тест написан, но есть одно "НО", мне нужно что бы значение true=тексту который сейчас
Алгоритм такой:
1. вытащить содержимое тега на странице (типа .text())
2. найти в том что ты вытащил подстроку. т.е. проверить есть там нужная нам подстрока или ее там нету.

После окончания регистрации на экране появляется текст, в котором сказано "Спасибо что зарегался, менеджер с вам перезвонит".

@Test
public void testRenultregistration() throws Exception {
driver.get(baseUrl + "/cars/duster");
driver.findElement(By.cssSelector("div.desc")).click();
driver.findElement(By.name("name")).sendKeys("Eugen");
driver.findElement(By.name("phone")).sendKeys("0999999999");
driver.findElement(By.name("email")).sendKeys("blabla@gmail.com");
driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();
}
@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}

private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}

private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}

private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}

Вот где-то здесь нужно прописать что после ввода данных регистрации и их подтверждения, тобишь нажатия на кнопку зарегестрироватся, у нас появится текст "Спасибо....", если появился то тру, нет - фолс. (Или хотя бы просто вывести значение на экран).

Я новичок в автоматизации, это вообще мой первый тест, все комментарии со всеми замечаниями приму как должное, ведь я согласен - это вроде по всей видимости легко, а я как даун 2 день не могу решить проблему, все облазил что было в моих силах.


(Artur Korobeynyk) #2

Круто сейчас апнули IDE, если она с вебдрайвером работает )
Я не подскажу решения проблемы, с селениумом работал не много, но могу сказать что спросят другие - в каком окне появляется текст "Спасибо за регистрацию". Это модальное окно типа алерта, какой-то всплывающий виджет на джаваскрипте, отдельная страница, iframe, или тело текущей страницы переписывается? Код на каждый из вариантов будет разный.
По коду конечно видно, что вы алерт отлавливаете, но всё же, вдруг )


(Kisel Eugen) #3

Все это происходит на одной странице, как только я нажал на "регистрация", при помощи анимации замещается окно с вводом данных на текст - "Спасибо...".

Что нашел в нете - driver.findElement(By.cssSelector("div.#subscribe-form.success")
Текст находиться в div(success), но к нему еще несколько дивов и все это в ID.
Не знаю только куда пихнуть все это.


(Владимир) #4

Не знаю как это реализуется в ide, но надеюсь мой ответ поможет. В вебдрайвере (Java) я использую Assert.assertTrue(driver.findElement(By.идентификатор("название идентификатора")).getText().startsWith("Спасибо"));
можно сделать через Assert.assertEquals


(Kisel Eugen) #5

Вопрос решен, выглядит у меня как-то так:
{
assertEquals("Заявку прийнято!", driver.findElement(By.cssSelector("div.content-helper > div.title")).getText());
}

Поиск идет через дивы в body страницы.


(Dmytro Makhno) #6

@jena_woody, тема названа так, чтобы привлечь внимание.... frowning
Подумал что какой-то вебинар проводится где можно попробовать иде, тем кто еще не попробовал.


(Kisel Eugen) #7

Согласен, не очень правильно назвал smiley

Просто суть теста - регистрация на тест-драйв, в панике не понимая "Ну что я ***** делаю не так" я и решил создать тему, что в голову пришло то и написал. Прошу прощение у тех кто зашел сюда именно из за этой мысли