Selenium RC:所有测试只有一个浏览器?

时间:2012-05-25 07:40:42

标签: java maven selenium selenium-rc

我现在很困,我不明白为什么我的代码不能正常工作。事实是,每次有一个新的测试,它关闭Firefox并重新打开它。这让我的测试花了很长时间才意识到......你能告诉我我做错了什么吗?

public class SeleniumTestLoginEntry extends SeleneseTestCase {

    private String login="scLocator=//DynamicForm[ID=\"formulaire_login\"]/item[index=0||Class=TextItem]/element";
    private String passwd="scLocator=//DynamicForm[ID=\"formulaire_login\"]/item[index=1||Class=PasswordItem]/element";
    static public DefaultSelenium selenium;

    public void setUp() throws Exception {
        selenium = new DefaultSelenium("localhost", 4500, "*firefox", "http://localhost:9091/");
        selenium.start();
    }

    public void testFields() throws Exception {
        selenium.open("/agepro-prototype/login/Login.html");
        selenium.type(login, "Unlogin");
        selenium.type(passwd, "Unpassword");
        Assert.assertEquals("Unlogin", selenium.getValue(login));
        Assert.assertEquals("Unpassword", selenium.getValue(passwd));
        selenium.click("scLocator=//ImgButton[ID=\"bouton_login\"]/");
    }

    public void testSameWindow() throws Exception {
        selenium.open("/agepro-prototype/login/Login.html");
        selenium.type(login, "truc");
        Assert.assertEquals("truc", selenium.getValue(login));
    }

    public void tearDown() throws Exception {
        selenium.stop();
    }
}

我试图将注释@BeforeClass和@AfterClass放在setUp()和tearDown之前,它不会改变任何东西。在每次测试之前都有@Test之前,但这根本没有帮助。我可以请你帮帮忙吗? =)

编辑:哦,我也尝试了setUp()中的selenium.open(blablabla),而不是直接在测试中,同样的问题,不会改变一件事。

1 个答案:

答案 0 :(得分:0)

不使用注释,setUp()将在每次测试之前运行(即两次)。

它不漂亮,但你可以创建一个初始测试(只运行一次)并将实例化从setUp()移到新的test()中。但请记住,如果无法创建您的selenium实例,那么所有后续测试也将失败。不太好:))