Я пытаюсь проработать этот пример из кулинарной книги Maven, чтобы запустить Selenium Test:
https://books.sonatype.com/mcookbook/reference/ch08s02.html
Я создал проект, как указано, и класс TwitterTest.java.
Единственными изменениями, которые я сделал, было изменение порта Selenium на 7777. Я сделал это, изменив код:
this.selenium = new DefaultSelenium("localhost", 7777, "*safari", "http://www.twitter.com");
и в POM я добавил:
<properties>
<selenium.server.port>7777</selenium.server.port>
</properties>
и изменения:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<configuration>
<port>${selenium.server.port}</port>
</configuration>
...
Я сделал это, потому что Server.app запускает launchd
на порту 4444.
Когда я запускаю mvn integration-test
, я получаю следующий вывод:
[INFO] --- selenium-maven-plugin: 2.3: start-server (по умолчанию) @ crm-test ---
Запуск Selenium Server
Ожидание Selenium Server ...
[INFO] Расширения пользователя: /Users/george/workspace/crm-test/target/selenium/user-extensions.js
17: 22: 12,724 INFO [org.openqa.selenium.server.SeleniumServer] Java: Oracle Corporation 25.102-b14
17: 22: 12,725 INFO [org.openqa.selenium.server.SeleniumServer] ОС: Mac OS X 10.12.6 x86_64
17: 22: 12,732 INFO [org.openqa.selenium.server.SeleniumServer] v2.21.0, с Core v2.21.0. Построен из ревизии 16551
17: 22: 12,841 ИНФОРМАЦИЯ [org.openqa.selenium.server.SeleniumServer] Экземпляры RemoteWebDriver должны подключаться к: http://127.0.0.1:7777/wd/hub
17: 22: 12,842 INFO [org.openqa.jetty.http.HttpServer] Версия Jetty / 5.1.x
17: 22: 12,843 INFO [org.openqa.jetty.util.Container] Запущен HttpContext [/ selenium-server, / selenium-server]
17: 22: 12,867 ИНФОРМАЦИЯ [org.openqa.jetty.util.Container] Начало org.openqa.jetty.jetty.servlet.ServletHandler@61a485d2
17: 22: 12,867 INFO [org.openqa.jetty.util.Container] Запущен HttpContext [/ wd, / wd]
17: 22: 12,867 INFO [org.openqa.jetty.util.Container] Запущен HttpContext [/ selenium-server / driver, / selenium-server / driver]
17: 22: 12 867 INFO [org.openqa.jetty.util.Container] Запущен HttpContext [/, /]
17: 22: 12,873 INFO [org.openqa.jetty.http.SocketListener] Запущен SocketListener с 0.0.0.0:7777
.
17: 22: 12,873 INFO [org.openqa.jetty.util.Container] Запущен org.openqa.jetty.jetty.Server@65ae6ba4
17: 22: 13.325 INFO - Проверка псевдонимов ресурсов
Selenium Server запущен
[ИНФО]
[INFO] --- maven-surefire-plugin: 2.12.4: test (по умолчанию) @ crm-test ---
[INFO] Каталог отчетов Surefire: / Users / george / workspace / crm-test / target / surefire-reports
T E S T S
Запуск org.sonatype.mcookbook.TwitterTest
Настройка TestNG с помощью: org.apache.maven.surefire.testng.conf.TestNG652Configurator@66cd51c3
17: 22: 14,365 INFO [org.openqa.jetty.util.Credential] Проверка псевдонимов ресурсов
17: 22: 14.369 ИНФОРМАЦИЯ - Запрос команды: getNewBrowserSession [* safari, http://www.twitter.com,] для нулевого сеанса
17: 22: 14.372 INFO - создание нового удаленного сеанса
17: 22: 14.404 ИНФО - выделенный сеанс 1acfb5c8359144f5aba4922bc8406c0c для http://www.twitter.com, запуск ...
17: 22: 14,458 INFO - Запуск Safari посетить «файл: /var/folders/02/t683l6k918v1s_sr0y8k71zm0000gn/T/customProfileDir1acfb5c8359144f5aba4922bc8406c0c/core/RemoteRunner.html SESSIONID = 1acfb5c8359144f5aba4922bc8406c0c & многооконного = истина & BaseUrl = HTTP% 3A% 2F% 2Fwww?. twitter.com & debugMode = false & driverUrl = http://localhost:7777/selenium-server/driver/' через '/var/folders/02/t683l6k918v1s_sr0y8k71zm0000gn/T/customProfileDir1acfb5c8359144f5aba4922bc8406c0c/redto_len.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go.go_go_go_go_go_go_go_go_go_go_go_go_go_go_go_go_go_go_go_go_go_go_go_go_go.go
Откроется окно Safari с консолью Selenium (функциональное тестирование Selenium для веб-приложений, открытый исходный код из ThoughtWorks и друзей)
Но, кроме этого, консоль просто сидит там, на «Запуск Safari для посещения», на неопределенный срок без дальнейшего прогресса.
Я не уверен, является ли это проблемой, связанной с Java, или чем-то экологическим.Если это помогает, я запускаю сервер Mac Pro с Sierra (10.12.6)
Обновление: через несколько минут выводится:
17: 52: 23.843 ОШИБКА - Сбойчтобы запустить новый сеанс браузера, закройте браузер и очистите все данные сеанса org.openqa.selenium.server.RemoteCommandException: истекло время ожидания появления окна 'null'
Если я посмотрю в консоли разработчика,Я вижу следующие сообщения:
[Ошибка] Не разрешено загружать локальный ресурс: файл: /// var / folder / 02 / t683l6k918v1s_sr0y8k71zm0000gn / T / customProfileDird2e9a9287f5648fc921212a0230f2eb5 / extension /.js [d2e9a9287f5648fc921212a0230f2eb5] requireExtensionJs (selenium-remoterunner.js: 581) getSessionId (selenium-remoterunner.js: 65) buildDriverParams (selenium-remoterunner.js.js: 399) nextCommand (selenium-remoterunner.js: 203) continueTest (selenium-executeloop.js: 35) начало (selenium-executeloop.js): 26) runSeleniumTest (selenium-remoterunner.js: 125) (анонимная функция) (RemoteRunner.html: 58)
[Ошибка] Нулевой источник не разрешен Access-Control-Allow-Origin.
[Ошибка] Не удалось загрузить ресурс: нулевой источник не разрешен Access-Control-Allow-Origin.(драйвер, строка 0)
[Ошибка] XMLHttpRequest не может загрузить http://localhost:7777/selenium-server/driver/?seleniumStart=true&localFrameAddress=top&seleniumWindowName=&uniqueId=sel_94166&sessionId=d2e9a9287f5648fc921212a0230f2eb5&counterToMakeURsUniqueAndSoStopPageCachingInTheBrowser=1530146840266&sequenceNumber=0 из-за проверок контроля доступа.
Есть ли способ обойти это?
Примечания: - если я пытаюсь использовать use *firefox
или *chrome
, я получаю:
18: 01: 17.623 INFO - Подготовка профиля Firefox ... 18: 01: 39.160 ОШИБКА -Не удалось запустить новый сеанс браузера, закрыть браузер и очистить все данные сеанса java.lang.RuntimeException: истекло время ожидания для создания профиля!
Обратите внимание, что в сообщении указано Подготовка Firefox профиль, пытаюсь ли я использовать * firefox ИЛИ * chrome