我正在尝试在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正在运行,本地防火墙已被禁用。
答案 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
从JUnit 3扩展TestCase
。我已将文档示例升级到JUnit 4,而没有考虑可能导致的问题。