【问题标题】:My selenium script is running fine in eclipse but not in jenkins我的 selenium 脚本在 eclipse 中运行良好,但在 jenkins 中运行良好
【发布时间】:2021-05-25 19:16:12
【问题描述】:

我已经使用 TestNG 注释和 maven 创建了脚本。它在 Eclipse 中按预期运行,我也尝试运行看起来不错的 testng.xml 文件。然后我配置了 Jenkins,但现在它没有运行。 Jenkins 给出的错误如下:(仅供参考:我之前已经成功构建了 Jenkins,这怎么会在一天之内坏掉???)

在端口 48847 上启动 ChromeDriver 72.0.3626.69 (3c16f8a135abc0d4da2dff33804db79b849a7c38) 只允许本地连接。 请保护 ChromeDriver 和相关测试框架使用的端口,防止恶意代码访问。 测试运行:7,失败:1,错误:0,跳过:6,经过时间:4.774 秒 失败! - 在测试套件中 launchBrowser(com.pages.VisibilityAnnotationDemo) 已用时间:4.208 秒 (未知错误:DevToolsActivePort 文件不存在) (从 chrome 位置 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe 开始的进程不再运行,因此 ChromeDriver 假设 Chrome 已崩溃。) (驱动程序信息:chromedriver=72.0.3626.69 (3c16f8a135abc0d4da2dff33804db79b849a7c38),platform=Windows NT 10.0.19042 x86_64)(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:872 毫秒

我在 Jenkins config Root POM 下面添加了 = C:\Users....\workspace\VRsessions\pom.xml 目标和选项 = 全新安装

我尝试运行的代码,它的脚本来做 UI 验证。

**public String baseUrl = " URL OF PAGE";
String driverPath = "C:\\Selenium\\chromedriver_win32\\chromedriver.exe";
public WebDriver driver;
JavascriptExecutor js = (JavascriptExecutor) driver;

@BeforeTest
public void launchBrowser() throws InterruptedException {
System.setProperty("webdriver.chrome.driver", driverPath);
driver = new ChromeDriver();
driver.get(baseUrl);
                                                                                        
}**     

【问题讨论】:

  • 您是否在headless 模式下运行?您能否分享您正在运行的代码以查看此错误?
  • 在描述中添加。感谢您调查

标签: selenium jenkins selenium-webdriver


【解决方案1】:

据我所知,chrome 上的测试必须在 headless 模式下才能在 Jenkins 上运行。您需要像这样设置 chrome 选项:

import org.openqa.selenium.chrome.ChromeDriver;

...

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--headless");
driver = new ChromeDriver(chromeOptions);

【讨论】:

  • 不幸的是没有运气。我也试过用最新版的chrome,还是不行。
  • 此问题现已解决。这是 chrome 驱动程序问题,所以我安装了最新的 chrome 和 chrome 驱动程序并将其复制到日志中给出的位置。我重新运行构建,它成功了。
【解决方案2】:

要解决此问题:--disable-dev-shm-usage, --headless, --no-sandbox 命令行选项添加到 Chrome。而且您还需要将ChromeOptions 对象传递给new ChromeDriver(options);

代码:

ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("disable-infobars");
System.setProperty("webdriver.chrome.driver", driverPath);
driver = new ChromeDriver(options);
driver.get(baseUrl);

【讨论】:

    猜你喜欢
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    相关资源
    最近更新 更多