Size: a a a

Selenide на русском

2020 December 03

PP

PSV PSV in Selenide на русском
Всем, привет!
Возникла проблема с тестом в котором я одновременно открываю два браузера и по очереди выполняю в них разные действия. Знаю, что Andrei по этому поводу скажет)))), но есть у меня такая необходимость, хоть это и бэдпрактика.
Так вот проблема в том, что выполнение происходит в одном браузере, а не в разных.
Подскажите пожалуйста что не так делаю.
Вот кусок

public class LinksTest extends BaseTest {
   private SelenideDriver browser1;
   private SelenideDriver browser2;

   @BeforeMethod
   void setUp() {
       driver().close();
       browser1 = new SelenideDriver(new SelenideConfig().browser(browser));
       browser2 = new SelenideDriver(new SelenideConfig().browser(browser));
   }

   @AfterMethod
   void earDown() {
       browser1.close();
       browser2.close();
   }

   public void LinksTestFor ( String tenant, String email, String password, String firstName, String lastName, String phoneNumber) throws InterruptedException {

       RegisterPage registerPage1 = new RegisterPage(browser1);
       LoginPage loginPage2 = new LoginPage(browser2);

       registerPage1
               .openRegisterPage()
               .expectedRegisterPageLoaded()
               .registerNewUser(email, password, firstName, lastName, phoneNumber);

      loginPage2
               .openLoginPage()
               .expectedLoginPageLoaded()
               .loginTo(email, password);



//Class RegisterPage
   public RegisterPage openRegisterPage() {
       open(BaseTest.Urls.get("Users") + "/register");
       return this;
   }
   
//Class LoginPage
   public LoginPage openLoginPage() {
       open(BaseTest.Urls.get("Users") + "/login");
       return this;
   }
источник

AZ

Andrii Zinchuk in Selenide на русском
PSV PSV
Всем, привет!
Возникла проблема с тестом в котором я одновременно открываю два браузера и по очереди выполняю в них разные действия. Знаю, что Andrei по этому поводу скажет)))), но есть у меня такая необходимость, хоть это и бэдпрактика.
Так вот проблема в том, что выполнение происходит в одном браузере, а не в разных.
Подскажите пожалуйста что не так делаю.
Вот кусок

public class LinksTest extends BaseTest {
   private SelenideDriver browser1;
   private SelenideDriver browser2;

   @BeforeMethod
   void setUp() {
       driver().close();
       browser1 = new SelenideDriver(new SelenideConfig().browser(browser));
       browser2 = new SelenideDriver(new SelenideConfig().browser(browser));
   }

   @AfterMethod
   void earDown() {
       browser1.close();
       browser2.close();
   }

   public void LinksTestFor ( String tenant, String email, String password, String firstName, String lastName, String phoneNumber) throws InterruptedException {

       RegisterPage registerPage1 = new RegisterPage(browser1);
       LoginPage loginPage2 = new LoginPage(browser2);

       registerPage1
               .openRegisterPage()
               .expectedRegisterPageLoaded()
               .registerNewUser(email, password, firstName, lastName, phoneNumber);

      loginPage2
               .openLoginPage()
               .expectedLoginPageLoaded()
               .loginTo(email, password);



//Class RegisterPage
   public RegisterPage openRegisterPage() {
       open(BaseTest.Urls.get("Users") + "/register");
       return this;
   }
   
//Class LoginPage
   public LoginPage openLoginPage() {
       open(BaseTest.Urls.get("Users") + "/login");
       return this;
   }
гугли как открить 2 барузера в selenide
источник

AZ

Andrii Zinchuk in Selenide на русском
источник

AS

Andrei Solntsev in Selenide на русском
PSV PSV
Всем, привет!
Возникла проблема с тестом в котором я одновременно открываю два браузера и по очереди выполняю в них разные действия. Знаю, что Andrei по этому поводу скажет)))), но есть у меня такая необходимость, хоть это и бэдпрактика.
Так вот проблема в том, что выполнение происходит в одном браузере, а не в разных.
Подскажите пожалуйста что не так делаю.
Вот кусок

public class LinksTest extends BaseTest {
   private SelenideDriver browser1;
   private SelenideDriver browser2;

   @BeforeMethod
   void setUp() {
       driver().close();
       browser1 = new SelenideDriver(new SelenideConfig().browser(browser));
       browser2 = new SelenideDriver(new SelenideConfig().browser(browser));
   }

   @AfterMethod
   void earDown() {
       browser1.close();
       browser2.close();
   }

   public void LinksTestFor ( String tenant, String email, String password, String firstName, String lastName, String phoneNumber) throws InterruptedException {

       RegisterPage registerPage1 = new RegisterPage(browser1);
       LoginPage loginPage2 = new LoginPage(browser2);

       registerPage1
               .openRegisterPage()
               .expectedRegisterPageLoaded()
               .registerNewUser(email, password, firstName, lastName, phoneNumber);

      loginPage2
               .openLoginPage()
               .expectedLoginPageLoaded()
               .loginTo(email, password);



//Class RegisterPage
   public RegisterPage openRegisterPage() {
       open(BaseTest.Urls.get("Users") + "/register");
       return this;
   }
   
//Class LoginPage
   public LoginPage openLoginPage() {
       open(BaseTest.Urls.get("Users") + "/login");
       return this;
   }
Ну так ты переменные browser1 и browser2 не используешь.
источник

PP

PSV PSV in Selenide на русском
Andrei Solntsev
Ну так ты переменные browser1 и browser2 не используешь.
RegisterPage registerPage1 = new RegisterPage(browser1);
       LoginPage loginPage2 = new LoginPage(browser2);
А после использую
registerPage1
               .openRegisterPage()
               .expectedRegisterPageLoaded()
               .registerNewUser(email, password, firstName, lastName, phoneNumber);

      loginPage2
               .openLoginPage()
               .expectedLoginPageLoaded()
               .loginTo(email, password);
Разве нет?
источник

AN

Alex Nemoy in Selenide на русском
привет
подскажите правильное решение
при клике на кнопку происходит одно из двух событий  - либо одна форма открывается либо другая)
как без вызывания exception  дождаться одного из нескольких элементов ?
источник

AS

Andrei Solntsev in Selenide на русском
PSV PSV
RegisterPage registerPage1 = new RegisterPage(browser1);
       LoginPage loginPage2 = new LoginPage(browser2);
А после использую
registerPage1
               .openRegisterPage()
               .expectedRegisterPageLoaded()
               .registerNewUser(email, password, firstName, lastName, phoneNumber);

      loginPage2
               .openLoginPage()
               .expectedLoginPageLoaded()
               .loginTo(email, password);
Разве нет?
Нет. Ты не вызываешь ни одного метода у объекта browser1.
источник
2020 December 04

PP

PSV PSV in Selenide на русском
Andrei Solntsev
Нет. Ты не вызываешь ни одного метода у объекта browser1.
Спасибо, за уделенное время!
источник

AN

Alex Nemoy in Selenide на русском
Alex Nemoy
привет
подскажите правильное решение
при клике на кнопку происходит одно из двух событий  - либо одна форма открывается либо другая)
как без вызывания exception  дождаться одного из нескольких элементов ?
up
источник

VB

Vlad Bak in Selenide на русском
Alex Nemoy
привет
подскажите правильное решение
при клике на кнопку происходит одно из двух событий  - либо одна форма открывается либо другая)
как без вызывания exception  дождаться одного из нескольких элементов ?
создать тестовые условия, когда нажатие на кнопку приводит к единственному ожидаемому результату. Не бывает такого, что кнопка рандомно приводит к событию
источник

AN

Alex Nemoy in Selenide на русском
Vlad Bak
создать тестовые условия, когда нажатие на кнопку приводит к единственному ожидаемому результату. Не бывает такого, что кнопка рандомно приводит к событию
Почему ? простой логин - я либо перейду на следующую страницу либо получу ошибку
источник

VB

Vlad Bak in Selenide на русском
так и создайте условия в одном тесте, когда переходите на страницу. и отдельно условия, когда получаете ошибку. эти события не рандомные.
Вам необходимо почитать про позитивные и негативные кейсы и не мешать их в кучу.
источник

AN

Alex Nemoy in Selenide на русском
не всегда результат детерминирован. мне надо оценивать какое действие из возможных произошло.
вопрос в том есть ли готовые паттерны в selenide для этого или юзать свои велосипеды
источник

SR

Stas Rusakov in Selenide на русском
Готовых паттернов нет. Селенид старается не упрощать написание такого рода тестов)
И лично я ему за это благодарен)
источник

VK

Vitaliy Kudryashov in Selenide на русском
Alex Nemoy
не всегда результат детерминирован. мне надо оценивать какое действие из возможных произошло.
вопрос в том есть ли готовые паттерны в selenide для этого или юзать свои велосипеды
тесты подразумевает однозначность результата, и по моему это правильно
источник

AN

Alex Nemoy in Selenide на русском
а как тогда тестировать бросок игральной кости с переходом на 1 из 6 страниц ?
источник

VK

Vitaliy Kudryashov in Selenide на русском
Alex Nemoy
а как тогда тестировать бросок игральной кости с переходом на 1 из 6 страниц ?
"кидать" все 6 вариантов и проверять переход на нужную страницу
источник

AN

Alex Nemoy in Selenide на русском
Vitaliy Kudryashov
"кидать" все 6 вариантов и проверять переход на нужную страницу
собственно вопрос - есть ли какой либо готовый метод типа wait который на входе получит список элементов и с заданным таймаутом выдаст какое условие выполнилось или нет за указанное время
источник

VK

Vitaliy Kudryashov in Selenide на русском
Alex Nemoy
собственно вопрос - есть ли какой либо готовый метод типа wait который на входе получит список элементов и с заданным таймаутом выдаст какое условие выполнилось или нет за указанное время
выше уже ответили что нет, я тоже не припомню чего-то в таком виде
источник

AV

Alexei Vinogradov in Selenide на русском
Alex Nemoy
а как тогда тестировать бросок игральной кости с переходом на 1 из 6 страниц ?
Моками
источник