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

在远程服务器中部署的 jenkins 上自动测试失败

孔君浩
2023-03-14

我的问题与这个问题有些相似。

我正在使用Cumber框架对企业java网站进行自动化测试。我写了很多。用于测试各种功能的功能文件。最近,当我对Jenkins进行回归测试时,一些测试开始崩溃。试验如下。

1)在chrome中进入临时邮件收件箱。

2)打开最新的电子邮件。

3) 单击“确认注册链接”,将打开一个新选项卡。

4)切换到新打开的选项卡,继续登录。

测试在第五步失败,出现“未找到元素”异常。当我检查来自selenium的截图时,它显示测试仍然在临时邮件收件箱中。标签切换没有发生。

我已将问题缩小到以下步骤定义。

    @And("^I switch to next window$")
    public void iSwitchToNextWindow() throws Throwable {
     for (String winHandle : getWebDriver().getWindowHandles()) {
       if (!winHandle.equalsIgnoreCase(windowHandle)) {
            getWebDriver().switchTo().window(winHandle); 
         }
       }
     }

< code>windowHandle是从上一步获得的。

如果您需要更多this.Please评论,请帮我information.Thank。

注意:仅当测试在 Jenkins 上运行时才失败,在本地计算机上运行时,测试工作正常。

编辑:

[问题已解决]问题出在chromedriver.exe版本上。詹金斯使用的是比我的机器上更旧的chromedriver版本。

共有1个答案

卢黎明
2023-03-14

这里的主要问题是您尝试过早切换并且缺少切换逻辑来验证windowHandle是否不是父windowHandle。您可以使用以下代码块/概念/算法:

>

  • @And("^我切换到下一个窗口$")之前

    String first_win_handle = driver.getWindowHandle();
    //click on the element which opens the new TAB
    

    切换标签:

        @And("^I switch to next window$")
        public void iSwitchToNextWindow() throws Throwable 
        {
            new WebDriverWait(driver,5).until(ExpectedConditions.numberOfWindowsToBe(2));
            for (String winHandle : getWebDriver().getWindowHandles()) 
            {
                if (!first_win_handle.equalsIgnoreCase(winHandle)) 
                {
                    getWebDriver().switchTo().window(winHandle); 
                }
            }
        }
    

    在这里你可以找到IE11中用Selenium跟踪Windows的最佳方式的详细讨论?

  •  类似资料:
    • 尝试远程启动服务时遇到奇怪的行为。 编辑:我进一步研究了这个问题,发现只有在尝试运行我的特定服务时才会出现这种情况。这意味着我的服务必须从已经登录的用户的会话中运行(这就是为什么如果我之前使用mstsc访问服务器,它仍然可以工作)。所以我想我的新问题是--有没有一种方法可以让我从PowerShell登录到远程机器? 多谢了。

    • 我想在远程服务器上运行我的java代码以获得更快的速度(服务器非常强大)。我想要的是将我的Intellij连接到那个远程服务器并运行我的代码。但我仍然想在我的本地机器(即我的笔记本电脑)上使用IntelliJ。 我在IntelliJ中找到了一个配置部分,它位于中,在那里我可以设置远程服务器的地址、用户名和密码。但我不知道下一步该怎么办。

    • 我试图部署战争到远程Glassfish 4.1服务器使用Jenkins(V2.138.1)部署到容器插件(V1.13)与以下配置 但出现了以下错误: 错误:生成步骤失败,组织异常。科德豪斯。货物util。CargoException:部署失败:操作失败将应用程序部署到目标服务器失败;JAVAutil。同时发生的超时异常 生成步骤“将war/ear部署到容器”标记为生成失败已完成:失败

    • 这是我的配置:在这里输入图像描述 并且有控制台输出: 构建成功总时间:7秒错误:步骤“Deploy War/EAR to a Container”由于异常而中止:java.io.ioException:预期Ant GLOB模式,但看到“/home/zhaowz/.jenkins/jobs/huamei-farm-web/workspace/BUILD/huamei.war”。有关hudson.fi

    • 我正在尝试使用无服务器将lambda函数部署到AWS。执行时 无服务器部署--详细 我得到以下错误每次: 无服务器错误--------------------------------------- 出现错误:mainTable-无效的KeySchema:第一个 myserverless.yml如下所示: 你们中有人能帮忙吗? 干杯

    • 为Jenkins部署保存舵图的最佳实践是什么?我对遵循标准的实现方式感到困惑。我对此CI/CD管道是新手。