Просто начинаю экспериментировать с Selenium 2.18. Почему Selenium создает новый экземпляр «Remote Control» между каждым тестовым элементом JUnit?
Я создал несколько модульных тестов под названием testA, testB, testC, и вот что происходит:
setUp:
0. Create static instance of DefaultSelenium
testA:
1. Selenium starts instance of "Remote Control"
2. Selenium starts web browser an opens app
testB:
3. Selenium starts new instance of "Remote Control"
4. Selenium kills first instance of "Remote Control"
5. Script sends existing browser to a URL on the local system (probably
a temp file of some kind)
Итак, мой вопрос: почему я не могу заставить Selenium иметь только один постоянный экземпляр «Remote Control», а также один постоянный экземпляр веб-браузера в testA, testB и testC?
ПРИМЕЧАНИЕ: шаг № 5 касается меня: если этот шаг не перенаправил на локальный файл, возможно, что пульт дистанционного управления на шаге № 4 мог найти содержимое на странице. Это происходит потому, что новый экземпляр «Remote Control» не знает о существовании браузера, запущенного первым экземпляром «Remote Control»?
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import org.openqa.selenium.server.RemoteControlConfiguration;
import org.openqa.selenium.server.SeleniumServer;
@RunWith(Suite.class)
@SuiteClasses({ Tests.class })
public class AllTests {
static SeleniumServer seleniumserver;
@BeforeClass
public static void setUpClass() throws Exception {
RemoteControlConfiguration settings = new RemoteControlConfiguration();
settings.setTrustAllSSLCertificates(true);
seleniumserver=new SeleniumServer(settings);
seleniumserver.boot();
seleniumserver.start();
System.out.println("Finished suite setUpClass");
}
...
А для моего клиента:
public class Tests extends SeleneseTestBase {
private static DefaultSelenium selenium;
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://localhost:8181/");
selenium.start();
}
public void testA() { System.out.println("TestA"); }
public void testB() { System.out.println("TestB"); }
public void testC() { System.out.println("TestC"); }