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

Тестирование веб-приложений 2.0
онлайн, начало 25 января
Тестирование REST API
онлайн, начало 28 января
SQL для тестировщиков
онлайн, начало 28 января
Техники локализации плавающих дефектов
онлайн, начало 28 января
Фотография

Selenium ide Проблема

Selenium ide Проблема

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

#1 digitorum21

digitorum21

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Владимир Трофименко

Отправлено 07 Ноябрь 2015 - 10:09

доброго времени суток. Подскажите пожалуйста. Есть вот такие две формы которые идут друг за другом которые нужно протестировать  тест отрабатывает , но регистрация не проходит, ошибка(Duplicate key error), что интересно, если в поле email ввести значение руками а не selenium то регистрация проходят. Вопрос , что это может, где загвоздка?

  • [info] Playing test case test-registration-nixar-page1-page2
  • [info] Executing: |open | http://nixar.work:8080/#/login | |
  • [info] Executing: |waitForPageToLoad | 0 | |
  • [info] Executing: |click | css=a | Sign up here! |
  • [info] Executing: |type | css=input.ng-valid-email | vanyavvvd@gmail.com |
  • [info] Executing: |type | css=input[name="password"] | Colourtest55555vvvr |
  • [info] Executing: |type | css=input[name="confirm"] | Colourtest55555vvvr |
  • [info] Executing: |click | css=button.md-button.md-submit | type=button |
  • [info] Executing: |type | css=input[name="fullName"] | Dmitriy Shevchenkovvvr |
  • [info] Executing: |type | css=input[name="companyName"] | genyvvvr |
  • [info] Executing: |type | css=input[name="domainName"] | http://genisvvvr.com |
  • [info] Executing: |type | css=input.ng-isolate-scope | Simsonstraße 9, 04107 Leipzig, Germany |
  • [info] Executing: |click | css=input[name="phoneNumber"] | |
  • [info] Executing: |type | css=input[name="phoneNumber"] | +380 66 011 88 59 |
  • [info] Executing: |click | css=md-checkbox | |
  • [info] Executing: |click | css=button | |
  • [info] Test case passed
  • [info] Test suite completed: 1 played, all passed!
  • [info] Playing test case test-registration-nixar-page1-page2
  • [info] Executing: |open | http://nixar.work:8080/#/login | |
  • [info] Executing: |waitForPageToLoad | 0 | |
  • [info] Executing: |click | css=a | Sign up here! |
  • [info] Executing: |type | css=input.ng-valid-email | vanyavvvd@gmail.com |
  • [info] Executing: |type | css=input[name="password"] | Colourtest55555vvvr |
  • [info] Executing: |type | css=input[name="confirm"] | Colourtest55555vvvr |
  • [info] Executing: |click | css=button.md-button.md-submit | type=button |
  • [info] Executing: |type | css=input[name="fullName"] | Dmitriy Shevchenkovvvr |
  • [info] Executing: |type | css=input[name="companyName"] | genyvvvr |
  • [info] Executing: |type | css=input[name="domainName"] | http://genisvvvr.com |
  • [info] Executing: |type | css=input.ng-isolate-scope | Simsonstraße 9, 04107 Leipzig, Germany |
  • [info] Executing: |click | css=input[name="phoneNumber"] | |
  • [info] Executing: |type | css=input[name="phoneNumber"] | +380 66 011 88 59 |
  • [info] Executing: |click | css=md-checkbox | |
  • [info] Executing: |click | css=button | |
  • [info] Test case passed
  • [info] Test suite completed: 1 played, all passed!
  • [info] Executing: |type | css=input.ng-isolate-scope | Via delle Industrie, Pip Zona Industriale VE, Italy | 

681ec915_o.png

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://nixar.work:8080/#/login" />
<title>test-registration-nixar</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">test-registration-nixar</td></tr>
</thead><tbody>
<tr>
	<td>open</td>
	<td>http://nixar.work:8080/#/login</td>
	<td></td>
</tr>
<tr>
	<td>waitForPageToLoad</td>
	<td>0</td>
	<td></td>
</tr>
<tr>
	<td>click</td>
	<td>css=a</td>
	<td>Sign up here!</td>
</tr>
<tr>
	<td>type</td>
	<td>css=input[name=email]</td>
	<td>digitorum123123@gmail.com</td>
</tr>
<tr>
	<td>type</td>
	<td>css=input[name=password]</td>
	<td>Genety2525</td>
</tr>
<tr>
	<td>type</td>
	<td>css=input[name=confirm]</td>
	<td>Genety2525</td>
</tr>
<tr>
	<td>click</td>
	<td>css=button.md-button.md-submit</td>
	<td>type=button</td>
</tr>
<tr>
	<td>type</td>
	<td>css=input[name=fullName]</td>
	<td>Podobedov Dmitriy</td>
</tr>
<tr>
	<td>type</td>
	<td>css=input[name=companyName]</td>
	<td>Nika</td>
</tr>
<tr>
	<td>type</td>
	<td>css=input[name=domainName]</td>
	<td>http://test.com</td>
</tr>
<tr>
	<td>type</td>
	<td>css=input.ng-isolate-scope</td>
	<td>Proriznyi Ln, Sumy, Sums'ka oblast, Ukraine</td>
</tr>
<tr>
	<td>type</td>
	<td>css=input[name=phoneNumber]</td>
	<td>+380 66 011 24 55</td>
</tr>
<tr>
	<td>click</td>
	<td>css=md-checkbox</td>
	<td></td>
</tr>
<tr>
	<td>click</td>
	<td>css=button.md-button</td>
	<td></td>
</tr>
</tbody></table>
</body>
</html>


cdde65a4_o.png


  • 0

#2 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 08 Ноябрь 2015 - 07:08

Duplicate key error. Говорит о том, что дублируется уникальное значение поля, т.е. в базе уже есть такое значение(имейл) и ты пытаешься ввести его ещё раз(проще говоря, нельзя зарегистрировать больше одного пользователя на один имейл). Как решение, тебе нужно либо удалять пользователя с этим имейлом из базы после прохождения теста, либо накатывать эталонный dump базы после прохождения теста. Остальные варианты , наверное, selenium ide можно не рассматривать.
  • 0

#3 tshuvaev

tshuvaev

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

  • Members
  • Pip
  • 53 сообщений
  • ФИО:Timur
  • Город:Москва

Отправлено 10 Ноябрь 2015 - 14:03

В тесте поменяй акк (email) и отрабтает кейс твой.


  • 0

#4 digitorum21

digitorum21

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Владимир Трофименко

Отправлено 11 Ноябрь 2015 - 19:21

В тесте поменяй акк (email) и отрабтает кейс твой.

Спасибо, извиняюсь, а что значит акк?


  • 0

#5 digitorum21

digitorum21

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Владимир Трофименко

Отправлено 11 Ноябрь 2015 - 19:30

Duplicate key error. Говорит о том, что дублируется уникальное значение поля, т.е. в базе уже есть такое значение(имейл) и ты пытаешься ввести его ещё раз(проще говоря, нельзя зарегистрировать больше одного пользователя на один имейл). Как решение, тебе нужно либо удалять пользователя с этим имейлом из базы после прохождения теста, либо накатывать эталонный dump базы после прохождения теста. Остальные варианты , наверное, selenium ide можно не рассматривать.

Даже если изменить на email которого нет в базе регистрация, не проходит, проходит если в поле email ввести данные руками , просто изменить те данные которые вписаны в форму или очистить форму и ввести данные, а через selenium новые данные не проходят.


  • 0

#6 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 11 Ноябрь 2015 - 19:40

Duplicate key error. Говорит о том, что дублируется уникальное значение поля, т.е. в базе уже есть такое значение(имейл) и ты пытаешься ввести его ещё раз(проще говоря, нельзя зарегистрировать больше одного пользователя на один имейл). Как решение, тебе нужно либо удалять пользователя с этим имейлом из базы после прохождения теста, либо накатывать эталонный dump базы после прохождения теста. Остальные варианты , наверное, selenium ide можно не рассматривать.

Даже если изменить на email которого нет в базе регистрация, не проходит, проходит если в поле email ввести данные руками , просто изменить те данные которые вписаны в форму или очистить форму и ввести данные, а через selenium новые данные не проходят.
У тебя два раза выполняются действия в одной форме. В первой отправляешь форму в базу, а на второй тебе выдаёт duplicate key error судя по логу? Из - за того , что второй раз регишь на тот же имейл
  • 0

#7 digitorum21

digitorum21

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Владимир Трофименко

Отправлено 11 Ноябрь 2015 - 19:42

Идентификация по id проходит, но id динамический  соответственно я его использовать не могу , есть type="email" тоже не проходит, есть класс у этого input class="ng-pristine ng-untouched ng-valid md-input ng-valid-required ng-valid-pattern ng-valid-email", если использую в качестве локатора ng-valid-email то не определяет форму, пишу в тесте так css=input.ng-valid-email Даже если написать css=input.ng-pristine.ng-untouched.ng-valid.md-input.ng-valid-required.ng-valid-pattern.ng-valid-email то все равно не определяет этот инпут.

,


  • 0

#8 digitorum21

digitorum21

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Владимир Трофименко

Отправлено 11 Ноябрь 2015 - 19:47

 

 

Duplicate key error. Говорит о том, что дублируется уникальное значение поля, т.е. в базе уже есть такое значение(имейл) и ты пытаешься ввести его ещё раз(проще говоря, нельзя зарегистрировать больше одного пользователя на один имейл). Как решение, тебе нужно либо удалять пользователя с этим имейлом из базы после прохождения теста, либо накатывать эталонный dump базы после прохождения теста. Остальные варианты , наверное, selenium ide можно не рассматривать.

Даже если изменить на email которого нет в базе регистрация, не проходит, проходит если в поле email ввести данные руками , просто изменить те данные которые вписаны в форму или очистить форму и ввести данные, а через selenium новые данные не проходят.
У тебя два раза выполняются действия в одной форме. В первой отправляешь форму в базу, а на второй тебе выдаёт duplicate key error судя по логу? Из - за того , что второй раз регишь на тот же имейл

 

я так понимаю, что когда я ввожу данные в email а потом в другой инпут то данные из другого инпута попадают в email, это предположение но я пытался по разному инициализировать email и по type и по классам все равно не проходит, только по текущему id, если взять текущий id input email и использовать его в selenium то регистрация пройдет.


  • 0

#9 digitorum21

digitorum21

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Владимир Трофименко

Отправлено 11 Ноябрь 2015 - 20:01

 

 

 

Duplicate key error. Говорит о том, что дублируется уникальное значение поля, т.е. в базе уже есть такое значение(имейл) и ты пытаешься ввести его ещё раз(проще говоря, нельзя зарегистрировать больше одного пользователя на один имейл). Как решение, тебе нужно либо удалять пользователя с этим имейлом из базы после прохождения теста, либо накатывать эталонный dump базы после прохождения теста. Остальные варианты , наверное, selenium ide можно не рассматривать.

Даже если изменить на email которого нет в базе регистрация, не проходит, проходит если в поле email ввести данные руками , просто изменить те данные которые вписаны в форму или очистить форму и ввести данные, а через selenium новые данные не проходят.
У тебя два раза выполняются действия в одной форме. В первой отправляешь форму в базу, а на второй тебе выдаёт duplicate key error судя по логу? Из - за того , что второй раз регишь на тот же имейл

 

я так понимаю, что когда я ввожу данные в email а потом в другой инпут то данные из другого инпута попадают в email, это предположение но я пытался по разному инициализировать email и по type и по классам все равно не проходит, только по текущему id, если взять текущий id input email и использовать его в selenium то регистрация пройдет.

 

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


  • 0

#10 digitorum21

digitorum21

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Владимир Трофименко

Отправлено 11 Ноябрь 2015 - 20:08

Подскажите пожалуйста, я использовал //div[@title='Email and Password']/div/form/md-input-container[1]/input в качестве локатора формы email как это можно дополнить , например классами или type использовать , как правильно записать, что бы локатор получился более точным.


  • 0

#11 digitorum21

digitorum21

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Владимир Трофименко

Отправлено 12 Ноябрь 2015 - 01:18

Проблему с полем email решил средствами selenium web driver , он в отличии от ide как я понял может очищать инпуты, но возникли проблемы с кликами на кнопки и чек боксы, Пишу потому, что может кто то когда то столкнется с такой проблемой 

package com.example.tests;

import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class TestRegistrationNixarPage1Page2 {
  private WebDriver driver;
  private String baseUrl;
  private boolean acceptNextAlert = true;
  private StringBuffer verificationErrors = new StringBuffer();

  @Before
  public void setUp() throws Exception {
    driver = new FirefoxDriver();
    baseUrl = "http://nixar.work:8080/#/login";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  }

  @Test
  public void testRegistrationNixarPage1Page2() throws Exception {
    driver.get("http://nixar.work:8080/#/login");
    driver.findElement(By.cssSelector("a")).click();
    driver.findElement(By.xpath("//input[1]")).clear();
    driver.findElement(By.xpath("//input[1]")).sendKeys("a.stegno77799980mbn@gmail.com");
    driver.findElement(By.cssSelector("input[name=\"password\"]")).clear();
    driver.findElement(By.cssSelector("input[name=\"password\"]")).sendKeys("Colourtest55555777999081mbn");
    driver.findElement(By.cssSelector("input[name=\"confirm\"]")).clear();
    driver.findElement(By.cssSelector("input[name=\"confirm\"]")).sendKeys("Colourtest55555777999081mbn");
    driver.findElement(By.xpath("//button[1]")).clear();
    driver.findElement(By.cssSelector("input[name=\"fullName\"]")).clear();
    driver.findElement(By.cssSelector("input[name=\"fullName\"]")).sendKeys("Dmitriybv Shevchenko77799906fnb81mbn");
    driver.findElement(By.cssSelector("input[name=\"companyName\"]")).clear();
    driver.findElement(By.cssSelector("input[name=\"companyName\"]")).sendKeys("asdgeny77799906fmbn");
    driver.findElement(By.cssSelector("input[name=\"domainName\"]")).clear();
    driver.findElement(By.cssSelector("input[name=\"domainName\"]")).sendKeys("http://genis777799906mbn.com");
    driver.findElement(By.cssSelector("input[name=\"phoneNumber\"]")).clear();
    driver.findElement(By.cssSelector("input[name=\"phoneNumber\"]")).sendKeys("+380 66 022 1189");
    driver.findElement(By.xpath("//md-checkbox[1]")).click();
    driver.findElement(By.xpath("//button[1]")).clear();
    // ERROR: Caught exception [unknown command []]
  }
  
 
 
}

Подскажите плыз как правильно прописать клик на кнопку и чек бокс в web driver.


  • 0

#12 Tishka

Tishka

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

  • Members
  • PipPipPip
  • 211 сообщений
  • ФИО:Ахрамеев Антон

Отправлено 12 Ноябрь 2015 - 06:44

Попробуйте прописать клик по лейблу чекбокса.

По поводу кнопки ничего сразу не могу сказать, скиньте сюда ссылку на страницу или html.

Есть мысль, что вы просто указали неверно локатор.

driver.findElement(By.xpath("//button[1]")).clear();

Может тут должен быть "click()", а не "clear()" раз это кнопка


  • 1

#13 tshuvaev

tshuvaev

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

  • Members
  • Pip
  • 53 сообщений
  • ФИО:Timur
  • Город:Москва

Отправлено 12 Ноябрь 2015 - 08:47

Попробуйте прописать клик по лейблу чекбокса.

По поводу кнопки ничего сразу не могу сказать, скиньте сюда ссылку на страницу или html.

Есть мысль, что вы просто указали неверно локатор.

driver.findElement(By.xpath("//button[1]")).clear();

Может тут должен быть "click()", а не "clear()" раз это кнопка

Ссылка есть в коде, мне тоже не понято зачем тут .clear(); - может он очищяет старые данные >? и вливает свои?


  • 0

#14 tshuvaev

tshuvaev

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

  • Members
  • Pip
  • 53 сообщений
  • ФИО:Timur
  • Город:Москва

Отправлено 12 Ноябрь 2015 - 08:50

Попробуйте прописать клик по лейблу чекбокса.

По поводу кнопки ничего сразу не могу сказать, скиньте сюда ссылку на страницу или html.

Есть мысль, что вы просто указали неверно локатор.

driver.findElement(By.xpath("//button[1]")).clear();

Может тут должен быть "click()", а не "clear()" раз это кнопка

http://nixar.work:8080/#/login  Да, там при нажатии на поле пароля, точки не пропадают. И он их стирает :D Нужно код править в любом случае там автотесты еще рано писать :D Сначало нужно форму нормальную запелить.


  • 0

#15 digitorum21

digitorum21

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Владимир Трофименко

Отправлено 13 Ноябрь 2015 - 10:45

Пробовал по разному

driver.findElement(By.xpath("//button[1]")).clear();

driver.findElement(By.xpath("//button")).click();

driver.findElement(By.className("md-button.md-submit.enter-target.md-raised.md-generic.ng-scope.waiting")).click();

по разному пробовал но selenium на button не жмет хотя ide справляется с этой задачей легко. может нужен что то типа import click для web-driver или active.


  • 0

#16 tshuvaev

tshuvaev

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

  • Members
  • Pip
  • 53 сообщений
  • ФИО:Timur
  • Город:Москва

Отправлено 13 Ноябрь 2015 - 11:57

по селектору попробуй -          .md-button
driver.findElement(By.cssSelector(".md-button")).click();

 


  • 0

#17 digitorum21

digitorum21

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Владимир Трофименко

Отправлено 13 Ноябрь 2015 - 23:51

с кнопками прикол такой , если прописать вот так , то есть кликнуть по одному и тому же два раза, то проходит, а вот если кликнуть так же по чекпоксу то откроется форма (модальное окно где нужно нажать я принимаю условия соглашения,  и тут уже такая штука с двумя кликами не катит, а вот по самому чекбоксу и лайблу чекбокса не кликает, буду думать дальше. )

driver.findElement(By.xpath("//button[1]")).click();

driver.findElement(By.xpath("//button[1]")).click();

  • 0


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн




Темы с аналогичным тегами Selenium ide, Проблема

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

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

Яндекс.Метрика
Реклама на портале