Не удается найти переменную: страница в PhantomJS

Я новичок в тесте, как в модульном тесте, так и в тесте UI

Я пытаюсь создать тест пользовательского интерфейса для моей страницы входа, используя следующий код:

console.log("Teste de Login");

var page = require('webpage').create();
page.open('http://localhost/login', function(status) {
    console.log("Page loadeed");

    if(status === "success") {
        page.render('example1.png');
    }

    page.evaluate(function() {
        // $("#numeroUsuario").val("99734167");
        document.getElementById('numeroUsuario').value = "99734167";
        page.render('exampl2.png');

        // $("#formLogin").submit();
        page.render('example3.png');
    });

    phantom.exit();
});

но этот код возвращает следующую ошибку:

> phantomjs.exe ./testLogin.js
Teste de Login
Page loadeed
ReferenceError: Can't find variable: page

  phantomjs://webpage.evaluate():4
  phantomjs://webpage.evaluate():8

где элемент . Что я сделал не так?

2 ответов


уверен, что в page.evaluate environment, вы не можете ссылаться ни на что из сценария Phantom.

в вашем случае у вас может быть несколько вызовов оценки:

console.log("Teste de Login");

var page = require('webpage').create();
page.open('http://localhost/login', function(status) {
    console.log("Page loadeed");

    if(status === "success") {
        page.render('example1.png');
    }

    page.evaluate(function() {
        // $("#numeroUsuario").val("99734167");
        document.getElementById('numeroUsuario').value = "99734167";
    });

    page.render('exampl2.png');

    page.evaluate(function() {
        // $("#formLogin").submit();
    });

    page.render('example3.png');

    phantom.exit();
});

на документация говорит следующее о контексте страницы (акцент мой):

исполнение изолированное веб-страница имеет доступ к не работать!