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

Фотография

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
  • 55 сообщений


Отправлено 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
  • 55 сообщений


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


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

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