这是我的代码,我只尝试过一种类型的用户登录
@BeforeMethod
public void setUp(){
log.info("Setting up test");
prop = new Properties();
prop.load(new FileInputStream(new File(loginFile)));
verificationErrors = new StringBuffer();
log.info("Running Firefox Driver");
System.setProperty("webdriver.gecko.driver", GECKO_DRIVER_PATH);
driver.manage().deleteAllCookies();
baseUrl = getSeleniumTarget();
driver.manage().timeouts().implicitlyWait(45, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(80, TimeUnit.SECONDS);
driver.manage().window().setPosition(new Point(0, 0));
driver.manage().window().maximize();
WebDriverThreadLocal.setWebDriver(driver);
login("manageuser");
}
protected void login(String username) {
LoginPage page = PageFactory.initElements(driver, LoginPage.class);
log.info("Loging in");
driver.get(baseUrl + prop.getProperty("login.customerportal"));
page.setUsername(prop.getProperty(username + ".username"));
page.setPassword(prop.getProperty(username + ".password"));
page.clickLoginButton();
如果我想在设置方法中使用多种类型的用户登录,是否可以,如果可以,如何?
如果要在设置方法中使用员工登录,该怎么办?
您需要实例化多个WebDriver
实例,并为每个实例重复所有配置代码。因此,为不同的驱动程序调用登录步骤,您将模拟多个用户登录。
您可能在定义驱动程序时使用List<WebDriver> drivers
而不是WebDriver driver
。
您还可以使用login(WebDriver driver, String username)
之类的东西,并执行类似的事情:
for(WebDriver driver: drivers){
login(driver, userNameThatYouHaveTakenFromSomewhere)
}