2009-11-04 6 views
1

Я установил Selenium IDE в Firefox и умею записывать и воспроизводить различные последовательности веб-навигации. Мне нужно, чтобы все это было автоматизировано с помощью PHP, то есть запустите PHP-скрипт, который получает исходный HTML-код конечной страницы (т. Е. В конце последовательности навигации). В Selenium есть возможность экспортировать в PHP, так что я получаю что-то вроде:Используйте код Selenium для загрузки веб-страницы

class Example extends PHPUnit_Extensions_SeleniumTestCase 
{ 
    function setUp() 
    { 
    $this->setBrowser("*chrome"); 
    $this->setBrowserUrl("http://www.example.com/"); 
    } 

    function testMyTestCase() 
    { 
    $this->open("/"); 
    $this->click("link=24"); 
    $this->waitForPageToLoad("30000"); 
    $this->click("link=Test2"); 
    $this->waitForPageToLoad("30000"); 
    $this->click("//td[4]/a/img"); 
    $this->waitForPageToLoad("30000"); 
    $this->type("username", "user"); 
    $this->type("password", "pass"); 
    $this->click("//input[@name='login']"); 
    $this->waitForPageToLoad("30000"); 
    } 
} 

Хотя я могу использовать это в моем PHP коде, это, кажется, не делать ничего (так как это просто определение класса Я полагаю). Как получить последнюю страницу исходного кода? Обратите внимание: я не хочу, чтобы мой PHP-код выполнял навигацию по экрану, вместо этого я хотел бы обработать этот конечный исходный код в PHP.

ответ

0

Экспортировать в PHP вариант будет экспортировать ваш тест в форме, которая будет (с небольшой дополнительной работой) запускаться с использованием PHP-драйвера Selenium RC. Он не экспортирует страницу, на которую вы смотрите.

Изделие Selenium IDE не позволит вам использовать конечный источник вашей страницы и что-либо сделать с ней. Если бы я должен был сделать что-то вроде этого я бы

  1. Пересмотрите мой подход

  2. Если бы я решил, что я хотел сделать это с помощью Selenium IDE, я хотел бы посмотреть на использование пользователем-extension.js механизм для написания нового действия Selenium, который будет использовать Javascript для извлечения источника страницы, а затем POST его к URL-адресу по моему выбору

  3. Сделайте URL-адрес выше страницы PHP, которая выполняет всю оставшуюся обработку.

Это своего рода Hacky, потребуется некоторое исследование пользовательских extension.js (не для всех), и дополнительный заказ, что обязательно будет хрупким. (См. Вариант № 1)

+0

Можете ли вы подробно остановиться на опции №1? Не нужно проходить через селен. После того, как я naviagate через сайт (в основном .aspx), я добираюсь до страницы, которую хочу, и могу «просматривать исходный код» через browswer. Это то, что я хотел бы получить «автоматически», например. через PHP-код. – Rob

0

Несколько вещей, которые делают это проще.

1) Когда приходит время делать это через php, ему необходимо подключиться к серверу.

2) Так что идите и скачайте сервер (селен-rc). Запустите его через: java -jar selenium-server.jar Проверьте параметры через java -jar selenium-server.jar -? (Я думаю!). Важным в этой точке будет местоположение файла журнала.

3) Сервер запустится на локальном хосте и в порту 4444 (по умолчанию ожидается генерируемый код).

4) Постарайтесь соединиться с этим кодом php выше. Проверьте журнал вашего сервера selenium. Он должен иметь подробную информацию о попытке подключения.

+0

Подробнее здесь: http://www.phpunit.de/manual/3.1/en/selenium.html. Я не уверен, что можно динамически удалять html (я предполагаю, что вы хотите увидеть, как выглядит разметка после модификаций javascript?). На самом деле, я в основном работаю с assert * и скриншотами, чтобы понять, как идут тесты. – Koobz

+0

Спасибо. Установили сервер selenium и смогли запустить его в CMD-окне. Бит путают «попытаться соединиться с этим кодом php выше», то есть как я могу его отправить? – Rob

+0

использовать phpunit.Если вы установили его с помощью груши в системе unix, у вас должна быть команда phpunit на вашем пути. Перейдите в свою тестовую директорию и введите: phpunit TestName.php – Koobz