@dawasaturday

Как «совместить» работу selenium webdriver и pyTest, чтобы написать автотест для каких-то действий на сайте?

Используя селениум webdriver и тестовый фреймворк pytest я хочу "сымитировать" на python определённые действия пользователя на сайте.
подскажите, куда смотреть, чтобы понять, как посредством дружной работы этих инструментов это реализовать?
не могу подыскать хоть сколько-нибудь понятные мануалы или статьи.
  • Вопрос задан
  • 738 просмотров
Пригласить эксперта
Ответы на вопрос 2
dummyman
@dummyman
диссидент-схизматик
Не работал с селениумом, но много работал с каспером.
Должно быть, принципы работы одинаковы.
Как делаю в каспере?
Возьмем базовый пример.

var casper = require('casper').create();
var links;

function getLinks() {
// Scrape the links from top-right nav of the website
    var links = document.querySelectorAll('ul.navigation li a');
    return Array.prototype.map.call(links, function (e) {
        return e.getAttribute('href')
    });
}

// Opens casperjs homepage
casper.start('http://casperjs.org/');

casper.then(function () {
    links = this.evaluate(getLinks);
});

casper.run(function () {
    for(var i in links) {
        console.log(links[i]);
    }
    casper.done();
});


Его не обязательно заранее сохранять в файл, можно запустить из питона каспер без параметров и он будет ожидать инструкций в стандартный поток ввода.

Сразу весь скрипт посылать не стоит. Первой пачкой отправим
var casper = require('casper').create();
var links;

function getLinks() {
// Scrape the links from top-right nav of the website
    var links = document.querySelectorAll('ul.navigation li a');
    return Array.prototype.map.call(links, function (e) {
        return e.getAttribute('href')
    });
}

// Opens casperjs homepage
casper.start('http://casperjs.org/');

Через, например, секунду выполним
casper.then(function () {
    links = this.evaluate(getLinks);
});

Через еще секунду проверим результат
casper.run(function () {
    for(var i in links) {
        console.log(links[i]);
    }
});


Потом еще раз выполним:
casper.thenOpen('http://phantomjs.org', function() {
    this.echo(this.getTitle());
});

casper.then(function () {
    links = this.evaluate(getLinks);
});


И еще раз проверим результат:
casper.run(function () {
    for(var i in links) {
        console.log(links[i]);
    }
});


И в конце завершим работу каспера:
casper.exit();

В каспере также есть собственная система модульного тестирования.

Не уверен, что с селениумом будет сложнее/проще, принципы везде одинаковы.
См. документацию
Ответ написан
Комментировать
assanti
@assanti
Человек
Пользуйся документацией фреймворка и вебдрайвера.
Производи инициализацию, настройку драйвера в фикстуре и передавай дальше в тест в этом же виде.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы