Setproperty селен для селена
Я новичок в Selenium и его структурах, мне нужна помощь в следующем:
Я использовал свойство set, как показано ниже в программе 1, так как при отправке ключей у меня возникали проблемы. Ключи отправлялись очень медленно, но с помощью setProperty
проблема была решена.
Однако, когда я разделяю этот код для тестирования, как в Программе 2, ключи отправляются медленно, несмотря на установку свойства. Что-то не так в том, как я это настраиваю?
Программа 1
public class BAU{
public static void main(final String[] args) throws interruptedException{
System .setProperty("webdriver.ie.driver","C:\\Selenium-Internet Explorer Driver Server v2.48.0(for 32 bit Windows IE)\\Selenium-Internet Explorer Driver Server v2.48.0(for 32 bit Windows IE)\\IEDriverServer.exe");
WebDriver drive = new InternetExplorerDriver();
drive.get("https:/testlogin.html");
drive.manage().window().maximize();
Thread.sleep(500);
drive.findElement(By.name("i_username")).sendKeys("Abcde");
drive.findElement(By.name("i_password")).sendKeys("Pass");
this.drive.findElement(By.className("btnPrimary")).click();
}
}
Программа 2
public class BAU_TESTING{
@Test(priority = 1)
public void setProperty(){
System .setProperty("webdriver.ie.driver","C:\\Selenium-Internet Explorer Driver Server v2.48.0(for 32 bit Windows IE)\\Selenium-Internet Explorer Driver Server v2.48.0(for 32 bit Windows IE)\\IEDriverServer.exe");
}
WebDriver drive = new InternetExplorerDriver();
@Test(priority = 2)
public void launchBrowser() throws InterruptedException {
this.drive.get("https:/testlogin.html");
this.drive.manage().window().maximize();
Thread.sleep(500);
System.out.println("Test Case 1 for launching the page has been executed");
}
@Test(priority = 3)
public void loginPage() throws InterruptedException {
this.drive.findElement(By.name("i_username")).sendKeys("Abcde");
this.drive.findElement(By.name("i_password")).sendKeys("Pass");
this.drive.findElement(By.className("btnPrimary")).click();
}
}
1 ответ
Я бы посоветовал вам поместить setProperty(), открытие страницы и другие общие действия в отдельный файл класса, а затем обращаться к этим классам, когда вам нужно в разных тестах. В качестве примера вы можете указать настройки браузера и способ открытия URL-адреса следующим образом.
`общедоступный класс Browser {
static WebDriver driver;
public static WebDriver launchApp(String browser, String URL) {
if (browser.equals("firefox")) {
driver = new FirefoxDriver();
}
else if (browser.equals("chrome")) {
driver = new ChromeDriver();
driver.navigate().to(URL);
}else if (browser.equals("ie")){
System.setProperty("webdriver.ie.driver", "C:\\Softwares\\Drivers\\"+"IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
driver.navigate().to(URL);
}
return driver;
}
} `
И создайте отдельный класс для вызова этих браузеров и запуска вашего теста.
`public class testGoogleSearch {
@Test
public void testLaunchApp() {
WebDriver driver = Browser.launchApp("chrome","https://www.google.com");
System.out.println("search something");
driver.findElement(By.id("lst-ib")).sendKeys("Selenium");
driver.findElement(By.name("btnK")).click();
}
} `
Удачи!!