我正在设置测试用例以进行练习,并尝试从XML文件中获取网站网址和所需浏览器(如果有)的参数。 Switch逻辑和webdriver命令看起来很稳定,但是也许我错过了一些使它完全跳过它们的东西。应该两次都输出成功登录的信息。
过去,我只是简单地将数据作为变量输入,这是我第一次尝试使用xml处理数据注入。
公共类NewTest {
WebDriver驱动程序;
@Test(dataProvider =“ getData”)
公共无效登录(字符串用户名,字符串密码)
{
//登录到应用程序的代码
driver.findElement(By.xpath("//*[@id=\'myNavbar\']/ul/li[4]/a")).click();
driver.findElement(By.id("usernameLogin")).sendKeys(username);
driver.findElement(By.id("passwordLogin")).sendKeys(password);
driver.findElement(By.id("login")).click();
try
{
//verifying the presence of webelement
````````````````````````````````````````````
new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.id("topMenu2")));
System.out.println("login success");
}
catch(Exception e)
{
System.out.println("Login failure");
}
driver.findElement(By.id("topMenu2")).click();
}
@DataProvider
public Object[][]getData() {
Object[][]data=new Object[2][2];
data[0][0]="pgGru";
data[0][1]="freezeray";
data[1][0]="pgAlmacho";
data[1][1]="freezeray";
return data;
}
@BeforeSuite
@Parameters({ "browsername", "url" })
public void setup(@Optional("Firefox")String browsername,String url) {
switch (browsername) {
case "IE":
WebDriver driver1;
driver1 = new InternetExplorerDriver();
System.setProperty("webdriver.IEDriverServer.driver", "D:\\Jarrrs\\Drivers\\IEDriverServer_win32");
driver1.get(url);
break;
case "Firefox":
WebDriver driver2;
driver2 = new FirefoxDriver();
System.setProperty("webdriver.geckodriver.driver","D:\\Jarrrs\\Drivers\\gecfkoDriver_win32");
driver2.get(url);
break;
case "chrome":
WebDriver driver3;
driver3 = new ChromeDriver();
System.setProperty("webdriver.chrome.driver, ","D:\\Jarrrs\\Drivers\\chromedriver_win32\\chromedriver.exe");
driver3.get(url);
break;
}
}
@AfterSuite
public void tearDown() {
driver.quit();
}
}
Right now the output is it is skipping the test cases for login and password
Expecting two passed or failed tests. Either one would be nice.
答案 0 :(得分:0)
新手在这里。您是说测试跳过了什么? login()中的动作是否未执行?我会将sys.out语句与login()一起使用,以检查代码是否正在执行。页面加载后如何添加暂停?如何在用户名和密码字段中添加硬编码值以检查其是否工作正常? 有时某些字段不能通过使用Selenium的sendkey来设置。需要使用JavascriptExecutor设置字段值