小编Jas*_*ept的帖子

Selenium Webdriver:如何在同一窗口中一个接一个地运行多个测试?

我的目标是让一系列测试一个接一个地运行。我想要一个“登录”脚本让用户登录,然后下面的脚本开始在同一个窗口/驱动程序中继续。我正在使用 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)

java testng selenium webdriver

6
推荐指数
1
解决办法
2万
查看次数

让驱动程序等到条件成立并在条件成立时继续的最佳方法是什么?

我正在自动化的工作流程用于生成报告。每次生成报告需要 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)

java testng selenium webdriver selenium-webdriver

3
推荐指数
1
解决办法
4060
查看次数

标签 统计

java ×2

selenium ×2

testng ×2

webdriver ×2

selenium-webdriver ×1