Я новичок в обоих Selenium WebDriver и Java. У меня есть веб-сервисы на моем сайте на странице /someservice.php. Я написал несколько тестов на Selenuim и они прекрасно работают. Пример кода (Основной класс):
public class SiteClass {
static WebDriver driver;
private static boolean findElements(String xpath,int timeOut ) {
public static void open(String url){
//Here we initialize the firefox webdriver
driver=new FirefoxDriver();
driver.get(url);
}
public static void close(){
driver.close();
}
WebDriverWait wait = new WebDriverWait( driver, timeOut );
try {
if( wait.until( ExpectedConditions.visibilityOfElementLocated( By.xpath( xpath ) ) ) != null ) {
return true;
} else {
return false;
}
} catch( TimeoutException e ) {
return false;
}}
public static Boolean CheckDiameter(String search,String result){
driver.findElement(By.xpath(//input[@id='search_diam'])).sendKeys(search);
WebDriverWait wait = new WebDriverWait(driver, 5);
WebElement element = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(//div[@class='ac_results'][last()]/ul/li)));
WebElement searchVariant=driver.findElement(By.xpath(//div[@class='ac_results'][last()]/ul/li));
Actions action = new Actions(driver);
action.moveToElement(searchVariant).perform();
driver.findElement(By.xpath(//li[@class='ac_over'])).click();
Boolean iselementpresent = findElements(result,5);
return iselementpresent;
}
}
Пример кода (тест-класс)
@RunWith(Parameterized.class)
public class DiamTest {@Parameters
public static Collection<Object[]> diams() {
return Arrays.asList(new Object[][] {
{ 111, //div[@class='jGrowl-message'],true},
{ 222, //div[@class='jGrowl-message'],false},
{ 333, //div[@class='jGrowl-message'],true},
});
}
private String inputMark;
private String expectedResult;
private Boolean assertResult;
public DiamTest(String mark, String result, boolean aResult) {
inputMark=mark;
expectedResult=result;
assertResult=aResult;
}
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
/**
* Test of CheckDiameter method, of class CableRu.
*/
@Test
public void testCheckDiameter() {
SiteClass obj=new SiteClass();
obj.open(http://example.com/services.php);
assertEquals(assertResult, obj.CheckDiameter(inputMark, expectedResult));
obj.close();
}
}
Теперь у меня есть 2 теста, как, что с 3 параметрами каждый (всего 6 вариантов). Как вы можете видеть в каждом варианте создать новое окно браузера и когда я бегу все 6 вариантов, которые занимают слишком много времени (до 80 секунд).
Как я могу запустить все варианты в одном окне браузера, чтобы ускорить мои тесты?