【问题标题】:Selenium Tests for Internet Explorer doesn't executs properly through JenkinsInternet Explorer 的 Selenium 测试无法通过 Jenkins 正确执行
【发布时间】:2019-06-13 13:36:18
【问题描述】:

我们的健康检查是自动化的,我们所有的应用程序都通过 Selenium 登录,并且只在 Internet Explorer 上登录。

代码在直接从批处理文件执行时运行良好。但是,当 Jenkins 调用这个批处理 (.bat) 文件时,它并没有完全执行。

顺便说一句,平台是 Windows Server 2008 R2 Standard

这是.bat文件代码

@echo off
set path="";
set path="E:\XXXX\jre1.8.0_141\bin";
pushd E:\Jenkins_Softwares\SeleniumCode\HealthCheck_jar
SET JAVA_OPTS=-Xmx4g -Xms512m -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m -XX:MaxHeapSize=512m
java -jar HealthCheck_JenkinsNG.jar

在启动 IE 驱动程序之前,我已在 JAVA 代码中添加了这些额外的 IE 选项。

InternetExplorerOptions options = new InternetExplorerOptions();
options.introduceFlakinessByIgnoringSecurityDomains();
options.enableNativeEvents();
options.destructivelyEnsureCleanSession();

当 Jenkins 执行批处理文件时,IE 浏览器会打开登录页面。显示此页面时有些奇怪 - 整个页面对齐被打乱,所有元素都向左对齐。 (我想强调的是,当直接执行批处理文件时,不会出现这样的页面对齐中断。元素保留其原始中心位置。出于某种原因,Jenkins 将所有这些设置在左侧)。 对齐对我来说并不完全是一个交易破坏者。

但是,当通过 Selenium 代码输入用户名和密码时,它会输入完美的文本框;但是当提交按钮被点击时,这些文本框中的内容变为空白,我无法登录。 (当通过直接运行批处理文件执行同一段代码时,我可以登录并显示我的应用程序的主页)

我怀疑 selenium java 代码是否有问题。因为,当从 .bat 文件甚至命令行运行时,甚至作为 IDE 中的 Java 应用程序运行时,它都能正确执行。 出于某种原因,当从 Jenkins 执行此操作时,它不起作用。

Jenkins 在 IE 11 上使用 Selenium 时是否需要设置任何选项或设置?因为我已经尝试过大量调整 selenium 代码,所以它们都会产生相同的结果 - 单击提交按钮后,登录页面上的元素会被清除。

另外,顺便提一下,所有这些都只在 Jenkins 的一个主节点上运行。没有从节点。

【问题讨论】:

  • 要设置变量,推荐的语法是Set "variable=value"。您能否解释一下为什么要从内置系统变量%PATH% 中删除每个位置。
  • 不确定对齐问题,但对于登录相关问题,我们需要查看您的硒代码以及该网页的 HTML 和 JS 代码。它可以帮助缩小问题范围。
  • 系统安装了JAVA 1.6。我无法升级它,因为 1.6 是在同一系统上使用的其他一些应用程序的基本要求。因为 Selenium 需要 JAVA 1.8,所以我只是在执行这个批处理文件时引用 1.8 库,从而为我的 selenium 测试提供安全启动所需的平台。这很好用,正如我在帖子中提到的那样,当直接执行批处理文件时,硒脚本可以工作。

标签: selenium batch-file internet-explorer jenkins selenium-iedriver


【解决方案1】:

您需要注意以下几点:

  • 对于 build 进程,Jenkins 需要 jdk 的路径。仅仅 jre 可能不够。
  • JDK 8u141 已经过时了,你需要升级到最新的JDK 8u202
  • introduceFlakinessByIgnoringSecurityDomains()Java)和IntroduceInstabilityByIgnoringProtectedModeSettings()DotNet)不是解决保护模式设置问题的理想解决方案>。
  • 在这里你可以找到Internet Explorer Protective mode setting and Zoom levels的详细讨论
  • 要使用 SeleniumInternetExplorerDriverInternetExplorer,您需要满足 Required Configuration

【讨论】:

    猜你喜欢
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 2012-01-08
    • 2015-01-07
    相关资源
    最近更新 更多