Я новичок в использовании селена. Я загрузил автономный сервер Selenium и успешно получил его, набравРазмер окна браузера Selenium
java -jar selenium-server-standalone-2.14.0.jar
в командной строке.
После запуска
phpunit.bat
из командной строки, все мои тесты будут проходить, как и ожидалось, за исключением одного, если я вручную разворачивать окно браузера Firefox, который автоматически открывается в процессе тестирования.
Во время выполнения тестов, когда открывается окно браузера Firefox, если я не увеличиваю это окно во время выполнения моего теста входа в систему, то этот тест не удастся и каким-то образом перенаправит на неожиданную страницу на моем сайте. Если я максимизирую окно перед завершением теста, кнопка «Войти» будет нажата, как и ожидалось, правильная страница загрузится, и тест пройдет.
Таким образом, мне интересно, есть ли способ изменить настройки где-нибудь, чтобы браузер Firefox просто расширялся во время выполнения тестов?
Я искал и обнаружил некоторые фрагменты кода, которые могут помочь, но я не уверен, где находится PHP-версия этого кода или где можно поместить какой-то аналогичный код для версии Selenium, которую я использую (Селен Автономный сервер):
# repositioning and resizing browser window:
driver.manage.window.move_to(300, 400)
driver.manage.window.resize_to(500, 800)
driver.manage.window.maximize
или это что C#, но мне нужно PHP и не знаю, где найти правильный код или где поставить его:
driver.Manage().Window.Maximize();
Вот код для входа в тест Selenium, о котором идет речь (с использованием Laracasts/Integrated) из моих тестов/SeleniumT est.php file:
<?php
use Laracasts\Integrated\Extensions\Selenium;
use Laracasts\Integrated\Services\Laravel\Application as Laravel;
class SeleniumTest extends Selenium
{
use Laravel;
/**
* Tests to see if the login page loads
*/
public function testToSeeIfLoginLoads()
{
$this->visit('/login')
->see('Login')->see('Email Address')->see('Password')
->type('[email protected]', 'email')->type('mypassword', 'password')
->waitForElement('log_in')
->click('log_in')
->waitForElement('table_summary')
->see('Complete Course Summary');
}
Звучит так, как будто вы построили тест входа в систему в такой хрупкой манере, что это касается местоположения кнопки в окне. Вы должны подумать о вызове события щелчка на элементе DOM, а не полагаться на щелчок по позиции X, Y. –
@MikeBrant Это логическое решение, которое соответствует этой проблеме, но я только что обновил свой вопрос выше, чтобы включить тест входа, который терпит неудачу.Насколько я могу судить, кнопку нужно нажимать независимо от того, где она находится на странице, так как на нее ссылается идентификатор «log_in» – user3089840