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

Фотография

Selenium-webdriver, NodeJS, Mocha, chai. Все тесты запускаются сразу.


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

#1 dmimaz

dmimaz

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

  • Members
  • Pip
  • 7 сообщений

Отправлено 19 июня 2019 - 07:41

Привет Помогите пожалуйста сделать так чтоб:

1. Тесты запускались по очереди (после завершения первого теста, запускается второй, третий и так далее (только после завершения предыдущего))

2. каждый новый тест создает новое окно браузера.

 

Что-то я наворотил и немножко запутался ))

const expect = require('chai').expect;
const equal = require('chai').equal;
const webdriver = require('selenium-webdriver');
const driver = new webdriver.Builder().forBrowser('chrome').build();
const Key = require('selenium-webdriver');
const By = webdriver.By;

describe('Desktop Login', () => {

    it('Retail', (done) => {
        setTimeout(() => {
            driver.get('https://gepur.com').then(async () => {
                await driver.manage().window().maximize();    
                await driver.findElement(By.className('h-account'))
                .then(el => el.click())
                .then(() => driver.findElement(By.id('loginform-email')))
                .then(el => el.sendKeys('someLogin'))
                .then(() => driver.findElement(By.id('loginform-password')))
                .then(el => el.sendKeys('somePasswd'))
                .then(() => driver.findElement(By.css('button.btn-basik.btn-sm.btn-black')))
                .then(el => el.click());
                
                await driver.sleep(500);
                let siteUrl = await driver.getCurrentUrl();
                expect(siteUrl).to.equal('https://gepur.com/');
                await driver.quit();
            });
            done();
        }, 1000);        
    });

    it('Wholesale', (done) => {
        setTimeout(() => {
            driver.get('https://gepur.com').then(async () => {
                await driver.manage().window().maximize();    
                await driver.findElement(By.className('h-account'))
                .then(el => el.click())
                .then(() => driver.findElement(By.id('loginform-email')))
                .then(el => el.sendKeys('someLogin'))
                .then(() => driver.findElement(By.id('loginform-password')))
                .then(el => el.sendKeys('somePasswd'))
                .then(() => driver.findElement(By.css('button.btn-basik.btn-sm.btn-black')))
                .then(el => el.click());
                
                await driver.sleep(500);
                let siteUrl = await driver.getCurrentUrl();
                expect(siteUrl).to.equal('https://gepur.com/');
                await driver.quit();
            });
            done();
        }, 1000);        
    });
});

  • 0

#2 dmimaz

dmimaz

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

  • Members
  • Pip
  • 7 сообщений

Отправлено 20 июня 2019 - 12:58

Тема закрыта. Решилось, на примере Webdriverio, добавлением 

browser.reloadSession();

во второй и последующий сценарии, сдля сброса сессии. Если нужно, можно (нужно) добавить await впереди.

 

На selenium-webdriver не реализовывал - нет времени и необходимости. Но наверняка там тоже есть что-то подобное этому

driver.manage().deleteAllCookies(); 

  • 0


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

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