• 😀 对于插桩引起的异常,我们是只有针对反射的时候才会抛出异常,方便详细问下你们这个【影响 1】是有用到 get/set 注解还是其他情况?

  • jacoco 相关问题 at 2018年04月09日

    (1)可以直接解压部署的 war 包,得到 class 然后生成报告。但是由于没有源码,所有没有办法定位到哪一行没有测到。
    (2)如果是直接通过 jenkins 打的包,可以直接去 jenkins 那台服务器上,取.java 和.class,就可以生成报告了。

  • sonar-maven-plugin 3.2 中的 sonar-scanner 的版本是更高的版本导致的。降到 2.3 版本就可以。
    这几天针对 sonar 升级遇到了各种插件版本不匹配。

    我是从 sonarqube 4.0 升级到 sonarqube 5.6 .其中原来有 7 个插件。checkstyle,pmd,findbugs,sonar-java ,squid,suriface,jacoco。
    (1)升级到 sonarqube 5.6 后 ,squid,suriface,jacoco 这三个插件需要移除,因为已经整合到 sonar-java 中了。
    (2)pmd 插件在 6.+ 上就移除了。所以一下子升级到最新版本的需要注意下。如果有原有规则通过 pmd 需要换,要么降低 sonarqube 的版本
    (3)findbugs 在 4.0 版本的时候,不需要指定编译后的 classes 位置,升级后需要通过 sonar.java.binaries 指定 classes 位置。
    (4)sonar-java 插件版本在 4.1+ 的时候,不统计 api 注释率了,改为 findbugs 中的一个规则。

    sonarqube -5.6 插件:sonar-findbugs-plugin-3.4.2,sonar-java-plugin-3.14-build5430.jar, sonar-pmd-plugin-2.6.jar,checkstyle-sonar-plugin-3.5.jar

  • #19 楼 @xiaoli 要先进行一次点击 捕获异常后,对异常进行分析,如果是 element is not clickable 这种异常就进行 js 点击,如果是其他异常导致的,则另外针对其他异常进行处理

  • 这个就是有元素遮挡了,要用 js 进行点击

  • #15 楼 @xiaoli ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoViewIfNeeded(true);", loginBtn);

  • #13 楼 @xiaoli 有个 Element.scrollIntoViewIfNeeded() 可以支持元素如果不在可视区则滚动,如果存在则不滚动。

  • element is not clickable at point 这个异常是有元素遮挡导致的。所以 js 可以执行,你滚动了后 click 执行也是不可以的。

  • 在 findAndWait 内部类 ExpectedCondition,实现 apply 方法执行 js,通过 js 来判断页面是否加载完成。Ext.Ajax.isLoading() 是判断 ext 的,你可以换成自己想要的页面加载完成判断。
    boolean isajax = (Boolean) ((JavascriptExecutor) driver).executeScript("return Ext.Ajax.isLoading()");
    return (isajax==false);