Selenium - не удалось запустить сеанс Selenium: не удалось запустить новый сеанс браузера: ошибка при запуске браузера - PullRequest
9 голосов
/ 12 сентября 2009

Я новичок в Selenium.Я сгенерировал свой первый тестовый пример с селеном Java, и он успешно скомпилирован.Но когда я запустил этот тест, я получил следующее RuntimeException

java.lang.RuntimeException: Could not start Selenium session: Failed to start new browser session: Error while launching browser at com.thoughtworks.selenium.DefaultSelenium.start <DefaultSelenium.java:88>

Пожалуйста, скажите мне, как я могу исправить эту ошибку.

Это файл Java, который я хочу запустить.

import com.thoughtworks.selenium.*;

import java.util.regex.Pattern;

import junit.framework.*;

public class orkut extends SeleneseTestCase {

 public void setUp() throws Exception {

  setUp("https://www.google.com/", "*chrome");

 }
 public void testOrkut() throws Exception {

  selenium.setTimeout("10000");

  selenium.open("/accounts/ServiceLogin?service=orkut&hl=en-US&rm=false&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin%3Fmsg%3D0&cd=IN&skipvpage=true&sendvemail=false");

  selenium.type("Email", "username");

  selenium.type("Passwd", "password");

  selenium.click("signIn");

  selenium.selectFrame("orkutFrame");

  selenium.click("link=Communities");

  selenium.waitForPageToLoad("10000");

 }

 public static Test suite() {

  return new TestSuite(orkut.class);

 }

 public void tearDown(){

  selenium.stop();

 }

 public static void main(String args[]) {

  junit.textui.TestRunner.run(suite());

 }

}

Сначала я запустил сервер selenium через командную строку, а затем запустил вышеуказанный java-файл через другую командную строку.

Второй вопрос: можно ли щелкнуть правой кнопкой мыши указанное место ввеб-страница с селеном.

Ответы [ 5 ]

5 голосов
/ 05 января 2011

Скорее всего, эта проблема вызвана уже запущенным экземпляром сервера Selenium. Новый экземпляр должен прослушивать тот же номер порта, но не может, потому что порт уже используется.

Допустим, ваш сервер Selenium настроен на запуск через порт 4444. Определите, используется ли порт, с помощью команды netstat:

В Windows: netstat -an | find "4444"

Ожидайте увидеть вывод следующим образом:

  TCP    0.0.0.0:4444           0.0.0.0:0              LISTENING
  TCP    [::]:4444              [::]:0                 LISTENING

В Linux используйте: netstat -anp | grep 4444

(Нет под рукой Linux, поэтому не могу показать пример вывода!)

Если вы видите какой-либо вывод, вам нужно убить процесс, который прослушивает порт, который Selenium хочет использовать. В Windows используйте netstat -anb, чтобы найти имя процесса (оно будет указано после строки, указывающей номер порта). Убить его с помощью диспетчера задач. В Linux PID и имя процесса будут перечислены в приведенной выше команде - уничтожьте его, используя kill -9 <PID>.

4 голосов
/ 12 сентября 2009

Если вы используете последнюю версию Selenium RC (после 1.0), вам следует изменить следующее:

setUp("https://www.google.com/", "*chrome");

для

setUp("https://www.google.com/", "*firefox");

Если это не работает, попробуйте создать отдельный профиль Firefox и использовать его:

http://seleniumhq.org/docs/05_selenium_rc.html#specifying-the-firefox-profile

2 голосов
/ 18 сентября 2009

Я знаю, что это может звучать глупо, но вы уверены, что указали selenium.start() в своем коде? Новички могут совершить эту ошибку.

1 голос
/ 27 сентября 2010

Всегда проверяйте, что selenium.stop() метод был вызван в конце шагов теста.

0 голосов
/ 30 сентября 2009

Метод setUp в основном вызывает метод start, поэтому не нужно указывать selenium.start () в приведенном выше коде. Я предполагаю, что это своего рода ошибка селена. он прекращает тестирование, прежде чем получить ответ. но я пока не нашел, почему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...