• 另外,extendreports里面调整flush()的时机(设置追加报告的模式),也能实现realtime吧

  • 看看开源协议先,小心人告你,做商业用途😏

  • 或者可以在xml中设置组中组,然后在@BeforeGroups中创建父节点

  • 创建父节点和子节点,比如我是以test作为父节点,以class作为子节点,以method作为孙节点:

    //在Suite执行之前,先创建ExtentReport实例
    @BeforeSuite
    public void beforeSuite(ITestContext context) {
        extent = ExtentManager.createInstance(context.getSuite().getName(),context.getSuite().getName());
    }
    
    @BeforeGroups
    public synchronized void beforeGroups(){
    
    }
    
    @BeforeTest
    public synchronized void beforeTest(ITestContext context){
        //将test作为父节点
        ExtentTest parent = extent.createTest(context.getName());
        parentTest.set(parent);
    }
    
    @BeforeClass
    public synchronized void beforeClass() {
        //将class作为子节点
        ExtentTest child = parentTest.get().createNode(getClass().getSimpleName());
        childTest.set(child);
    }
    
    @BeforeMethod
    public synchronized void beforeMethod(Method method) {
        //将Method作为孙节点
        ExtentTest GrandsonTest = childTest.get().createNode(method.getName());
        test.set(GrandsonTest);
    }
    
  • 如果要本地化,要改包内的报告模板,head.ftl和index.ftl
    或者通过接口修改cdn地址

    //设置静态文件的DNS 如果cdn.rawgit.com访问不了,可以设置为:ResourceCDN.EXTENTREPORTS 或者ResourceCDN.GITHUB
          htmlReporter.config().setResourceCDN(ResourceCDN.EXTENTREPORTS);
    
  • 我猜是selenium的的包用了3.5+的

  • 设了app就不要设activity嘛。。
    caps.apps:从本地安装后启动
    caps.appPackage+caps.appActivity: 从设备里启动某个应用
    caps.BROWSER_NAME:启动设备里的浏览器
    三选一就行,没必要全设置

  • 设置Capability的时候automationName设置为UIAutomator2。
    WebDriverWait是selenium的,不过本来也是继承的selenium的方法,何必分那么清楚呢😁
    我贴的代码,实现的是根据toast内容判断toast是否存在(网上抄的),目前就看到这样的一个替代方案

  • 如果是toast,用UIAutomator2可以解决。

    final WebDriverWait wait = new WebDriverWait(driver,timeOut);
    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(".//*[contains(@text,'"+ toast + "')]")));
    
  • 嘛,用Unicode来表示中文呢?