Возникли проблемы с запуском Google Chrome через Selenium RC server в Ubuntu

#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 /… ) и он не включает опцию для настройки браузера, поэтому я ищу другой способ сделать то же самое.