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

dmimaz

Регистрация: 12 июн 2019
Offline Активность: 02 июл 2019 16:10
*----

Мои сообщения

В теме: WebdriverIO + Google Dropdown Autocomplete (Places Geocoder).

01 июля 2019 - 12:44

И снова.... стоило чуток подумать.. и вот оно..
 

let customerFormAddress = await $('#customerform-address');
await customerFormAddress.click();
await customerFormAddress.setValue('Моск');
await browser.pause(200);
await browser.keys('ArrowDown');
await browser.pause(200);
await browser.keys('ArrowDown');
await browser.pause(200);
await browser.keys('Enter');
Здесь мы:
  1. находим нужный локатор
  2. засылаем в него начало нужной строки
  3. нажимаем !2! раза на стрелочку вниз чтоб автоподставить значение из первого snap в этом дропдауне
  4. нажимает энтер
  5. без явных пауз (от 200 миллисекунд) оно не работает

ТЕМА ЗАКРЫТА.


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

20 июня 2019 - 12:58

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

browser.reloadSession();

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

 

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

driver.manage().deleteAllCookies(); 

В теме: WebdrioverIO не кликает по кнопке

20 июня 2019 - 07:54

const assert = require('assert');

describe('Desktop login', () => {
    it('Retail login', async () => {
        await browser.setWindowSize(1024, 768);
        await browser.url('https://gepur.com');
        const loginButton = await $('a.h-account');
        await loginButton.click();
        const email = await $('id=loginform-email');
        email.setValue('someLogin');
        const password = await $('id=loginform-password');
        password.setValue('somePassword');
        browser.debug();
        const submitButton = await $('button.btn-basik.btn-sm.btn-black');
        await browser.pause(500);
        await submitButton.click();
        await browser.pause(200);
        let url1 = await driver.getUrl()
        await browser.pause(200);
        await assert.equal(url1, 'https://gepur.com/');
        await browser.closeWindow();
    });
});

В общем, тема закрыта. Решил добавлением паузы


В теме: WebdrioverIO не кликает по кнопке

19 июня 2019 - 05:57

В общем, получилось проще - написать на selenium-webdriver..... но вопрос всё еще открыт.... )

const expect = require('chai').expect;
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', () => {
        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('login'))
            .then(() => driver.findElement(By.id('loginform-password')))
            .then(el => el.sendKeys('password'))
            .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();
        });        
    });
});