Behat-Mink, заставьте драйвер Selenium использовать Chrome вместо Firefox

Поэтому я хочу запускать свои тесты в Chrome вместо Firefox (поскольку Chrome предлагает возможность мобильной эмуляции) при использовании драйвера Selenium с расширением Behat’s Mink.

Я работаю в автономном режиме Selenium на тестовом сервере и тесты на локальной машине.

Таким образом, после запуска тестов Behat, сеанс Chrome создается, но не используется, вместо этого создается другой параллельный сеанс Firefox, который используется для запуска тестовых сценариев.

Я пробовал это также в среде с графическими возможностями отображения, поэтому открывается новое окно Chrome, но только data;; отображается в адресной строке, затем открывается окно Firefox и там запускаются тесты.

Я использую последнюю версию Chrome (52.0.2743.82), автономного сервера Selenium (2.53.1 — версия Java) и Chromedriver (2.22.397932)

мой behat.yml содержит следующее:

default:
extensions:
Behat\MinkExtension:
browser_name: chrome
base_url: "<url to website>"default_session: selenium_chrome_session
goutte: ~
sessions:
selenium_chrome_session:
selenium2:
browser: chrome
wd_host: "http://<testing server host>:4444/wd/hub"capabilities:
extra_capabilities:
chromeOptions:
args:
- "--start-maximized"- "--test_type"

Посмотрев лог-файл автономного сервера Selenium, я получаю следующий вывод:

15:44:47.677 INFO [45] org.openqa.selenium.remote.server.DriverServlet - Executing: [new session: Capabilities [{chrome.switches=[--no-sandbox], browser=chrome, name=Behat feature suite, browserName=chrome, chrome.extensions=[], ignoreZoomSetting=false, chromeOptions={args=[--no-sandbox], extensions=[]}, version=, tags=[PHP 5.6.21-1~dotdeb+7.1]}]])
15:44:47.678 INFO [113] org.openqa.selenium.remote.server.DefaultDriverProvider - Creating a new session for Capabilities [{chrome.switches=[--no-sandbox], browser=chrome, name=Behat feature suite, browserName=chrome, chrome.extensions=[], ignoreZoomSetting=false, chromeOptions={args=[--no-sandbox], extensions=[]}, version=, tags=[PHP 5.6.21-1~dotdeb+7.1]}]
15:44:48.021 INFO [45] org.openqa.selenium.remote.server.DriverServlet - Done: [new session: Capabilities [{chrome.switches=[--no-sandbox], browser=chrome, name=Behat feature suite, browserName=chrome, chrome.extensions=[], ignoreZoomSetting=false, chromeOptions={args=[--no-sandbox], extensions=[]}, version=, tags=[PHP 5.6.21-1~dotdeb+7.1]}]]
15:44:48.035 INFO [45] org.openqa.selenium.remote.server.DriverServlet - Executing: [new session: Capabilities [{deviceType=tablet, selenium-version=2.31.0, browserVersion=9, browser=firefox, name=Behat Test, browserName=firefox, deviceOrientation=portrait, version=9, platform=ANY}]])
15:44:48.036 INFO [120] org.openqa.selenium.remote.server.FirefoxDriverProvider - Creating a new session for Capabilities [{deviceType=tablet, selenium-version=2.31.0, browserVersion=9, browser=firefox, name=Behat Test, browserName=firefox, deviceOrientation=portrait, version=9, platform=ANY}]

Как видите, сессия Chrome успешно создана, а затем создается новый сеанс Firefox, который используется для проведения тестов.

0

Решение

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

0

Другие решения

Вы можете указать, какой браузер вы хотите использовать, на отдельный сервер selenium.

Вот вам пример:

java -jar ./bin/selenium-server-standalone-2.53.1.jar -Dwebdriver.chrome.driver="./bin/chromedriver"

Обратите внимание, что вы можете использовать другой автономный сервер selenenium (файл jar) и другой путь к Chrome bin (-Dwebdriver.chrome.driver). Также убедитесь, что у вас установлен Chrome, если вы тестируете свои веб-страницы на автономном сервере.

1

java -Dwebdriver.chrome.driver="C:\bin\chromedriver_win32\chromedriver.exe" -jar selenium-server-standalone-3.3.1.jar

а также изменить настройки и setUpBeforeClass метод

public static function setUpBeforeClass() {
if (null === self::$mink) {
//            $app = require_once('../PATH_TO_YOUR/app.php');
//            $app['debug'] = true;
//            $app['session.test'] = true;
//            $app['exception_handler']->disable();

self::$mink = new Mink(array(
'selenium' => new Session(new Driver\Selenium2Driver('chrome', 'null', "http://google.com/")),
));
self::$mink->setDefaultSessionName('selenium');
}
}

protected function setUp() {

$this->setBrowser('chrome');
$this->setBrowserUrl('http://google.com/');
}
0
По вопросам рекламы [email protected]