0

从一个类启动应用程序并在另一个类中使用它。

大家好,

我是硒和Java的新手。我只是想研究硒。我面临一些问题。我想创建一个类,我只想在其中启动应用程序(例如 google.com),而接下来的其他任务(例如执行测试用例)必须由其他类完成。可以这样做吗,我在这里粘贴我的代码。请帮助我理解这一点。

这是我的两节课

此类在浏览器上启动 Google。

public class GoogleTest extends SeleneseTestCase
{
    private static Selenium selenium;

    @BeforeClass
    public static void setUpBeforeClass() throws Exception 
{
        selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.google.com");
        selenium.start();
        selenium.windowMaximize();
    }

    @Test
    public void testSearch() throws InterruptedException
{
      selenium.open("http://www.google.com");
      selenium.waitForPageToLoad("50000");    
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        selenium.stop();
    }
}

此类应在搜索字段中输入

public class FirstSeleniumTest extends GoogleTest
{         private static Selenium selenium;

    @Test
    public void testSearch()
{
  selenium.type("q", "Selenium OpenQA");
      selenium.waitForPageToLoad("50000");
    }
}

当我运行“GoogleTest”第一类它运行完美,当我尝试运行“FirstSeleniumTest”第二类它给出这样的错误。失败:testSearch on null(com.dev.rao.FirstSeleniumTest) java.lang.NullPointerException at com.dev.rao.FirstSeleniumTest.testSearch(FirstSeleniumTest.java:18)

4

1 回答 1

0

通常很难做到你想要达到的目标。这就是为什么新的 Selenium 实例每次测试都更好的原因。从长远来看,易于调试。但是根据您的尝试,我看到了两个问题:

1.) selenium.stop()应该在第二个脚本而不是第一个脚本中。如果您杀死实例,如何在第二次测试中扩展它。

2.) 两次声明 Selenium。(我认为第二次测试中的 Selenium 实例可能也应该从第一次测试中扩展。)

于 2012-04-24T17:03:26.197 回答