java - setproperty selenium for selenium
问题描述
我是 Selenium 及其框架的新手,需要以下帮助:
我在程序 1 中使用了如下所示的 set 属性,因为我在发送密钥时遇到了问题。密钥的发送速度非常慢,但是通过使用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();
}
}
节目二
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();
}
}
解决方案
我建议您将 setProperty()、打开页面和其他常见操作放在单独的类文件中,然后在需要时在不同的测试中访问这些类。例如,您可以将您的浏览器设置和 url 打开方法以这种方式放置。
`公共类浏览器{
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();
}
}`
祝你好运!!
推荐阅读
- python - 检查一列是否与另一列的列表中的所有对象匹配
- php - Laravel array_only 带点符号
- entity-framework - 将 DbSet 存储在构造函数中,而不是调用 DbContext.Set
每次使用 - android - Visual Studio 代码无法检测到模拟器设备或连接的电话
- python - Django objects.get_or_create():从字典或列表传递参数
- tensorflow - TensorFlow 会自动并行化图计算吗?
- amazon-web-services - GA 版本上的 Aurora Serverless 允许从 Internet 连接吗?
- hash - 更改块散列的默认散列函数
- python - Python super().__init__() TypeError: super() 需要至少 1 个参数(给定 0)
- python - Python hdf5storage 正在转置我的数据?