我的目标是让一系列测试一个接一个地运行。我想要一个“登录”脚本让用户登录,然后下面的脚本开始在同一个窗口/驱动程序中继续。我正在使用 TestNG,所以如果有帮助的话,我的测试套件是在 testng.xml 文件中设置的。
public class LoginScript {
String username, password, siteid;
private WebDriver driver;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
static Logger log = Logger.getLogger(LoginScript.class);
@BeforeSuite (alwaysRun=true)
@Parameters({ "url","username","password","site" })
public void setUp(String env, String user, String pwd, String ste) throws Exception {
username=user;
password=pwd;
siteid=ste;
driver = new FirefoxDriver();
driver.get(env);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
@Test
public void testLoginScript() throws Exception {
//Maximize window
driver.manage().window().maximize();
//Login
driver.findElement(By.id("TBSiteID")).clear();
driver.findElement(By.id("TBSiteID")).sendKeys(siteid);
driver.findElement(By.id("TBUserName")).clear();
driver.findElement(By.id("TBUserName")).sendKeys(username);
driver.findElement(By.name("TBPassword")).clear();
driver.findElement(By.name("TBPassword")).sendKeys(password);
driver.findElement(By.name("Login")).click();
Thread.sleep(2000);
log.info("Found …Run Code Online (Sandbox Code Playgroud) 我正在自动化的工作流程用于生成报告。每次生成报告需要 X 时间(即可能需要 10-50 秒)。如果未发生预期条件,我想不出让驱动程序等到报告生成并继续的好方法。目前,我有意问司机去寻找预期的条件下测试失败“你的报告是完整的小号”,但问题是,它不会继续在尝试捕捉从这里开始。这是它将运行的最后一行。
工作流程: 我开始报告的主页 -> 报告生成器弹出窗口(最多等待 50 秒)-> 两种可能的情况: 1.“另一个报告正在运行,稍后再试。” 2.“您的报告已完成”
我的硒代码:
//explicit wait
WebDriverWait wait = new WebDriverWait(driver, 50);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[contains(text(),'" + "Your Report is complete" + "')]")));
try{
Assert.assertTrue(driver.getPageSource().contains("Your Report is complete."));
log.info("Your report was generated.");
}
catch(AssertionError ex){
log.error("Your report was not generated.");
throw ex;
}
finally {
driver.close();
// change focus back to old tab
driver.switchTo().window(oldTab);
Thread.sleep(3000);
}
Run Code Online (Sandbox Code Playgroud)
页面生成报表成功时的页面源码:
<html>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<TITLE>Generating report</TITLE>
<style type="text/css" media="screen">
@import url("public/css/main-new.css"); …Run Code Online (Sandbox Code Playgroud)