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

Тестирование REST API
онлайн, начало 26 августа
Автоматизация функционального тестирования
онлайн, начало 30 августа
Азбука IT
онлайн, начало 28 августа
Python для начинающих
онлайн, начало 29 августа
Фотография

WebdrioverIO не кликает по кнопке

webdriverio wdio click sync

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

#1 dmimaz

dmimaz

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

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

Отправлено 12 Июнь 2019 - 08:50

Привет. не могу кликнуть по кнопке. Помогите пожалуйста. 

Дано тест:

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('login');
        const password = await $('id=loginform-password');
        password.setValue('password');
        browser.debug();
        const submitButton = await $('=Войти');
        await submitButton.click();
        browser.pause(3000);
        let url1 = await driver.getUrl()
        browser.pause(3000);
        await assert.equal(url1, 'https://gepur.com/');
        //await loginButton.click();
        //const url = browser.getUrl();
        //await assert.equal(url, 'https://gepur.com/account/show/main');
    });
});

После await submitButton.click(); редиректа на гланую не происходит. кнопка рабочая, руками проверял...... Помогите понять причину пожалуйста )))


  • 0

#2 lapa

lapa

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

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


Отправлено 12 Июнь 2019 - 11:05

Привет. не могу кликнуть по кнопке. Помогите пожалуйста. 

Дано тест:

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('login');
        const password = await $('id=loginform-password');
        password.setValue('password');
        browser.debug();
        const submitButton = await $('=Войти');
        await submitButton.click();
        browser.pause(3000);
        let url1 = await driver.getUrl()
        browser.pause(3000);
        await assert.equal(url1, 'https://gepur.com/');
        //await loginButton.click();
        //const url = browser.getUrl();
        //await assert.equal(url, 'https://gepur.com/account/show/main');
    });
});

После await submitButton.click(); редиректа на гланую не происходит. кнопка рабочая, руками проверял...... Помогите понять причину пожалуйста )))

селектор не правильный =Войти. Думаю тут ничего не находит

 

можете попробовать что нить вроде const submitButton = await $('[name="login-button"]')


  • 0

#3 dmimaz

dmimaz

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

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

Отправлено 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();
        });        
    });
});

  • 0

#4 lapa

lapa

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

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


Отправлено 19 Июнь 2019 - 08:02

 

В общем, получилось проще - написать на 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();
        });        
    });
});

во втором примере вы используете другой локатор потому и сработало. ну и вы используете устаревший подход. сейчас все используют async/await


  • 0

#5 dmimaz

dmimaz

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

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

Отправлено 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();
    });
});

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


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн



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

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

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