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

Фотография

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 ide, Проблема

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

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