Selenium RC 403错误 - 禁止代理

时间:2010-05-25 13:58:01

标签: java eclipse macos selenium selenium-rc

我正在尝试在Snow Leopard上使用Java 6,JUnit 4和Eclipse运行Selenium RC 1.0.3。

这是我的测试类,来自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并添加{{ 1}},但没有人帮助,甚至改变了行为。

有什么想法吗?

编辑: selenium-server正在运行,本地防火墙已被禁用。

1 个答案:

答案 0 :(得分:1)

好的,这是一个解决方案,没有任何理解:如果@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从JUn​​it 3扩展TestCase。我已将文档示例升级到JUnit 4,而没有考虑可能导致的问题。