当前位置: 首页 > 知识库问答 >
问题:

java(selenium)代码在本地上运行良好,但无法捕获jenkens上的异常

甘明朗
2023-03-14
class abc
{
    @FindBy(xpath = "//div[@class='v-label']")
    WebElement myErrorMessageText;
    //Sometime above element will be available on our HTML page and some 
    //time it will not. 
    // when it is there this works fine but if it is not there then 
    //this is giving error  
    void fun()
    {
           
        try
        {
            theErrorMessage = myErrorMessageText.getText();
        }
        catch (NoSuchElementException e)
        {
            return null;
        }
    }

}

当我在本地运行上述代码时,异常被捕获,空被返回,但在詹金斯上,捕获块无法捕获异常,我的代码停止了进一步的执行。

当我在詹金斯身上运行时:

试图找到元素通过: By.xpath://div[@class='v-tag']异常发生:org.openqa.selenium.NoSuchElementExc0019:无法找到元素://div[@class='v-tag']

有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html

构建信息:版本:'3.14.0',版本:'aacccce0',时间:'2018-08-02T20:19:58.91Z'系统信息:主机:'seliius26226',IP:'10.120.108.105',os.name:'Linux ', os.arch:'amd64',os.version:'3.10.0-693.5.2.el7.x86_64',java.version:'1.8.0_151'驱动程序信息:org.openqa.selenium.firefox.FirefoxDriver功能{接受InsecureCerts: true,浏览器名称: Firefox,浏览器版本: 78.9.0,javascriptEnable: true,moz:访问性检查:false,moz:构建ID:20210315154203,moz:geckodriverVersion:0.26.0,moz:无头:真,moz:进程ID:2365,moz:配置文件: /tmp/rust_mozprofileHlpoPN,moz:关闭Timeout:60000,moz:useNonSpecCompliantPointerOrigin:false,moz:webdriver点击:真,页面加载策略:正常,平台:LINUX,平台名称:LINUX,平台版本:3.10.0-693.5.2.el7.x86_64,可旋转:false, setWindowRect: true,严格的文件互操作性: false,超时:{隐式: 0, pageLoad: 300000,脚本: 30000}, unHandledPrompt行为:解雇并通知}会话ID: 193dfb8e-cbfc-47af-bc4b-02addbe7d32b***元素信息:{使用=xpath, value=//div[@class='v-tag']}

发生异常:org.openqa.selenium.WebDriverException:java.io.IOException:没有此类文件或目录生成信息:版本:“3.14.0”,版本:“aacccE0”,时间:“2018-08-02T20:19:58.91Z”系统信息:主机:“seliius26226”,ip:“10.120.108.105”,os.name:“Linux”,os.arch:“amd64”,os.version:“3.10.0-693.5.2.el7.x86_64”,java.version:'1.8.0_151'

共有1个答案

娄森
2023-03-14

软断言是在您添加sa.assertall()的控制台中有一个错误;因此错误显示在jenkins中

SoftAssert Sa = new SoftAssert();     
Boolean NumberCorrect = driver.findElements(By.xpath = "//div[@class='v-label']")).size() > 0;
            if (NumberCorrect == true) {
                        Reporter.log(FormatMessageSucces + " The Input type changed</font>");
                    } else if (TypeInputAfterClique.equals("password")) {
                        Sa.assertEquals(false, true, "The input type didn't change");
                        ScreenShot(driver);
                        Reporter.log(FormatMessageError + " The input type didn't change</font>");
                    }
Sa.assertAll();
 类似资料:
  • 我已经使用TestNG注释和maven创建了脚本。它在Eclipse中运行,我也尝试运行testng。xml文件,看起来不错。然后我配置了Jenkins,但现在它没有运行。Jenkins给出的错误如下:(仅供参考:我以前已经成功构建了Jenkins,这怎么可能在一天内打破?) 在端口48847上启动ChromeDriver 72.0.3626.69(3C16F8A135ABC0D4DA2DF338

  • 代码: 这段代码在本地运行良好,异常由catch块处理,我的代码继续执行,但当我在Jenkins上运行相同的代码时,catch块无法捕获异常。 日志:

  • 当我执行时 在控制台(javascript)中,它通过类名返回元素,但是当我执行时: < code > driver . find elements(by . class name(" jobs-company-card _ _ content-wrapper ")); 结果(元素)是一个空的列表,注意返回

  • 我开发了一个React应用程序,它使用Laravel作为API。我已经通过Passport添加了登录,并且已经相当成功地使用了个人访问客户端方法。我可以添加新用户和令牌,我可以撤销令牌,我可以重置密码...所有的API调用(除了登录和注册)都由API中间件保护,它可以工作。如果我从任何这些调用的头中删除,则由于->middleware('auth:api')包装器,它将返回401未经验证。 一切都

  • 我已经使用Appium和Java以及TestNG为Android应用程序编写了一些测试。我的测试在模拟器上本地运行良好,但当我将它们上传到设备场时,我的测试总是失败。我已经尽可能地简化了我的测试,但它仍然不起作用。目前,我尝试运行的测试会在打开应用程序时出现的提示中找到并单击“允许权限”按钮。代码: 观看Device Farm提供的视频,我可以看到它打开并立即关闭我的应用程序。它甚至没有像应该的那

  • 我创建了一个JasperReport应用程序,它在tomcat服务器上运行良好。但是当我使用相同的jar在Jboss上运行时,它会显示错误 原因:java.lang.ClassCastException:org.apache.xerces.jaxp.DocumentBuilderFactoryImpl无法强制转换为javax.xml.parsers.DocumentBuilderFactor.ne