#google-chrome #selenium #selenium-rc
#google-chrome #selenium #selenium-rc
Вопрос:
Я запускаю Selenium RC server 2.0 b3 в Ubuntu 11.04. Я установил Google Chrome и пытаюсь запустить несколько тестов против него. Я могу отлично запускать тесты против Firefox. Однако, когда я запускаю свой тест на сервере Selenium, он просто зависает, а затем истекает время ожидания. Это все отчеты журнала сервера (обратите внимание на нулевой сеанс):
16:14:16.810 INFO - Command request: getNewBrowserSession[*googlechrome, http://mydomain.com, ] on session null
16:14:16.810 INFO - creating new remote session
16:14:16.811 INFO - Allocated session 6913c9613c554db798e109eadefd43da for http://mydomain.com, launching...
16:14:16.811 INFO - Launching Google Chrome...
16:19:44.776 ERROR - Failed to start new browser session, shutdown browser and clear all session data
org.openqa.selenium.server.RemoteCommandException: timed out waiting for window 'null' to appear
at org.openqa.selenium.server.FrameGroupCommandQueueSet.waitForLoad(FrameGroupCommandQueueSet.java:564)
at org.openqa.selenium.server.FrameGroupCommandQueueSet.waitForLoad(FrameGroupCommandQueueSet.java:521)
at org.openqa.selenium.server.BrowserSessionFactory.createNewRemoteSession(BrowserSessionFactory.java:374)
at org.openqa.selenium.server.BrowserSessionFactory.getNewBrowserSession(BrowserSessionFactory.java:125)
at org.openqa.selenium.server.BrowserSessionFactory.getNewBrowserSession(BrowserSessionFactory.java:87)
at org.openqa.selenium.server.SeleniumDriverResourceHandler.getNewBrowserSession(SeleniumDriverResourceHandler.java:785)
at org.openqa.selenium.server.SeleniumDriverResourceHandler.doCommand(SeleniumDriverResourceHandler.java:422)
at org.openqa.selenium.server.SeleniumDriverResourceHandler.handleCommandRequest(SeleniumDriverResourceHandler.java:393)
at org.openqa.selenium.server.SeleniumDriverResourceHandler.handle(SeleniumDriverResourceHandler.java:146)
at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1530)
at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1482)
at org.openqa.jetty.http.HttpServer.service(HttpServer.java:909)
at org.openqa.jetty.http.HttpConnection.service(HttpConnection.java:820)
at org.openqa.jetty.http.HttpConnection.handleNext(HttpConnection.java:986)
at org.openqa.jetty.http.HttpConnection.handle(HttpConnection.java:837)
at org.openqa.jetty.http.SocketListener.handleConnection(SocketListener.java:243)
at org.openqa.jetty.util.ThreadedServer.handle(ThreadedServer.java:357)
at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
16:19:44.777 INFO - Killing Google Chrome...
16:19:44.777 INFO - Got result: Failed to start new browser session: Error while launching browser on session null
Я запускаю Selenium как службу при запуске системы, вот так…
start() {
log_daemon_msg "Starting selenium-server server: "
/usr/bin/Xvfb :15 -ac -screen 0 1024x768x8 amp;
export DISPLAY=localhost:15.0
su selenium -c 'java -jar /opt/selenium/selenium-server-standalone-2.0b3.jar -userExtensions /opt/selenium/user-extensions.js > /var/log/se_rc_server.log 2>amp;1 amp;'
PID=$!
### Create the lock file ###
echo $PID > /var/run/selenium-server.pid
echo
Есть идеи, как я могу устранить нулевые сеансы Google Chrome и запустить свои тесты? Спасибо, — Дэйв
Комментарии:
1. Не могли бы вы поделиться своим тестовым кодом? Тот, который подключается к серверу selenium?
2. У вас есть
google-chrome
at/usr/bin/google-chrome
или где-то еще?
Ответ №1:
Вы столкнулись с ограничениями безопасности Chrome. Вам необходимо установить значение «mode» равным «disableSecurity» в настройках вашего браузера, чтобы отключить их.
Комментарии:
1. Как вы это делаете? Я попытался создать файл «/ usr / bin / google-chrome» с содержимым «chromium-browser —disable-web-security», но это не работает.
2. Я не знаю, какой язык вы используете, но в Java вы бы вызвали
set()
метод. Вот JavaDocs (адаптация к любому языку, который вы используете, должна быть простой): selenium.googlecode.com/svn/trunk/docs/api/java/com / …3. Является ли то, что вы предлагаете, эквивалентом запуска Google Chrome / Chromium с опцией «—disable-web-security»? Я использую класс HttpCommandProcessor для отправки команд ( release.seleniumhq.org/selenium-remote-control/0.9.0/doc/java /… ) и он не включает опцию для настройки браузера, поэтому я ищу другой способ сделать то же самое.