Selenium RC 403 Ошибка - запрещено для прокси - PullRequest
3 голосов
/ 25 мая 2010

Я пытаюсь запустить Selenium RC 1.0.3 с использованием Java 6, JUnit 4 и Eclipse на Snow Leopard.

Вот мой тестовый класс из документации Selenium:

public class TestCase extends SeleneseTestCase {

  @Before
  public void before() throws Exception {
    setUp("http://www.google.com/", "*firefox");
  }

  @Test
  public void test() {
    selenium.open("/");
    selenium.type("q", "selenium rc");
    selenium.click("btnG");
    selenium.waitForPageToLoad("30000");
    assertTrue(selenium.isTextPresent("Advanced search"));
  }
}

Я получаю следующую ошибку, которая возникает во время вызова selenium.open():

11:16:59.916 INFO - Got result: 
XHR ERROR: URL = http://localhost:4444/ Response_Code = 403 
Error_Message = Forbidden+for+Proxy on session a8cf1e0bd5ed42c5a4df0c25ec5f5286

Я пытался (находя различные предложения в Интернете) заменить *firefox на *chrome или *firefox, заменить http на https и добавить selenium.start(), но ни один не помог или даже не изменился поведение.

Есть идеи?

РЕДАКТИРОВАТЬ: Селен-сервер работает, и локальный брандмауэр отключен.

1 Ответ

1 голос
/ 25 мая 2010

ОК, вот решение, без какого-либо понимания: если метод @Before удален, а вызов setUp() перемещен в метод @Test, то он работает:

@Test
public void test() throws Exception {
  setUp("http://www.google.com/", "*chrome");
  selenium.open("/");
  selenium.type("q", "selenium rc");
  selenium.click("btnG");
  selenium.waitForPageToLoad("30000");
  assertTrue(selenium.isTextPresent("Advanced search"));
}

Но вот лучшее решение, основанное на понимании:

import com.thoughtworks.selenium.SeleneseTestCase;

public class TestCase extends SeleneseTestCase {

  public void setUp() throws Exception {
    setUp("http://www.google.com/", "*firefox");
  }

  public void testAuto() throws Exception {
    selenium.open("/");
    selenium.type("q", "selenium rc");
    selenium.click("btnG");
    selenium.waitForPageToLoad("30000");
    assertTrue(selenium.isTextPresent("Advanced search"));
  }
}

Оказывается, SeleneseTestCase расширяет TestCase от JUnit 3. Я обновил пример документации до JUnit 4, не задумываясь о том, какие проблемы могут быть вызваны.

...