【问题标题】:Selenium with Maven test on Mac stalls在 Mac 上使用 Maven 测试 Selenium
【发布时间】:2018-12-04 20:24:57
【问题描述】:

我正在尝试通过 Maven 食谱中的这个示例来运行 Selenium 测试:

https://books.sonatype.com/mcookbook/reference/ch08s02.html

我已经创建了指定的项目和 TwitterTest.java 类。

我所做的唯一更改是将 Selenium 运行的端口更改为 7777。我通过更改代码来做到这一点:

    this.selenium = new DefaultSelenium("localhost", 7777, "*safari",  "http://www.twitter.com");

在 POM 中我添加了:

<properties>
    <selenium.server.port>7777</selenium.server.port>
</properties>

并修改:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>selenium-maven-plugin</artifactId>
            <configuration>
                <port>${selenium.server.port}</port>
            </configuration>
     ...

我这样做是因为 Server.app 在端口 4444 上运行 launchd

当我运行mvn integration-test 时,我得到以下输出:

[INFO] --- selenium-maven-plugin:2.3:start-server (默认) @ crm-test ---

启动 Selenium 服务器

等待 Selenium 服务器...

[INFO] 用户扩展:/Users/george/workspace/crm-test/target/selenium/user-extensions.js

17:22:12,724 INFO [org.openqa.selenium.server.SeleniumServer] Java:甲骨文公司 25.102-b14

17:22:12,725 INFO [org.openqa.selenium.server.SeleniumServer] 操作系统:Mac OS X 10.12.6 x86_64

17:22:12,732 信息 [org.openqa.selenium.server.SeleniumServer] v2.21.0,带有核心 v2.21.0。从修订版 16551 构建

17:22:12,841 INFO [org.openqa.selenium.server.SeleniumServer] RemoteWebDriver 实例应连接到:http://127.0.0.1:7777/wd/hub

17:22:12,842 INFO [org.openqa.jetty.http.HttpServer] 版本 Jetty/5.1.x

17:22:12,843 INFO [org.openqa.jetty.util.Container] 已启动 HttpContext[/selenium-server,/selenium-server]

17:22:12,867 INFO [org.openqa.jetty.util.Container] 已启动 org.openqa.jetty.jetty.servlet.ServletHandler@61a485d2

17:22:12,867 INFO [org.openqa.jetty.util.Container] 已启动 HttpContext[/wd,/wd]

17:22:12,867 INFO [org.openqa.jetty.util.Container] 已启动 HttpContext[/selenium-server/driver,/selenium-server/driver]

17:22:12,867 INFO [org.openqa.jetty.util.Container] 已启动 HttpContext[/,/]

17:22:12,873 INFO [org.openqa.jetty.http.SocketListener] 在 0.0.0.0:7777 开始 SocketListener

17:22:12,873 INFO [org.openqa.jetty.util.Container] 已启动 org.openqa.jetty.jetty.Server@65ae6ba4

17:22:13.325 INFO - 检查资源别名

Selenium 服务器已启动

[信息]

[INFO] --- maven-surefire-plugin:2.12.4:test (默认) @ crm-test ---

[INFO] Surefire 报告目录:/Users/george/workspace/crm-test/target/surefire-reports


T E S T S


运行 org.sonatype.mcookbook.TwitterTest

使用以下命令配置 TestNG:org.apache.maven.surefire.testng.conf.TestNG652Configurator@66cd51c3

17:22:14,365 INFO [org.openqa.jetty.util.Credential] 检查资源别名

17:22:14.369 INFO - 命令请求:getNewBrowserSession[*safari, http://www.twitter.com, ] on session null

17:22:14.372 INFO - 创建新的远程会话

17:22:14.404 信息 - 为 http://www.twitter.com 分配会话 1acfb5c8359144f5aba4922bc8406c0c,正在启动...

17:22:14.458 INFO - 启动Safari浏览器访问“文件:/var/folders/02/t683l6k918v1s_sr0y8k71zm0000gn/T/customProfileDir1acfb5c8359144f5aba4922bc8406c0c/core/RemoteRunner.html的sessionId = 1acfb5c8359144f5aba4922bc8406c0c&多窗口=真&的baseUrl = HTTP%3A%2F%2Fwww?。 twitter.com&debugMode=false&driverUrl=http://localhost:7777/selenium-server/driver/' 通过'/var/folders/02/t683l6k918v1s_sr0y8k71zm0000gn/T/customProfileDir1acfb5c8359144f5aba4922bc8406c0c/redirect_to_go_to_selenium.htm'...>

一个 Safari 窗口打开,显示 Selenium 控制台(Web 应用程序的 Selenium 功能测试,来自 ThoughtWorks 和朋友的开源)

但除此之外,控制台只是坐在那里,无限期地“启动 Safari 访问”,没有进一步的进展。

我不确定这是与 java 相关的问题,还是环境问题。如果有帮助,我正在运行带有 Sierra (10.12.6) 的 Mac Pro 服务器

更新:几分钟后输出:

17:52:23.843 错误 - 无法启动新的浏览器会话、关闭浏览器并清除所有会话数据 org.openqa.selenium.server.RemoteCommandException:等待窗口“null”出现时超时

如果我查看开发者控制台,我会看到以下消息:

[错误] 不允许加载本地资源:file:///var/folders/02/t683l6k918v1s_sr0y8k71zm0000gn/T/customProfileDird2e9a9287f5648fc921212a0230f2eb5/core/scripts/user-extensions.js[d2e9a9287f5648fc9212121 requireExtensionJs (selenium-remoterunner.js:581) getSessionId (selenium-remoterunner.js:65) buildDriverParams (selenium-remoterunner.js:464) addUrlParams (selenium-remoterunner.js:415) sendToRC (selenium-remoterunner.js:399) nextCommand (selenium-remoterunner.js:203) continueTest (selenium-executionloop.js:35) 开始 (selenium-executionloop.js:26) runSeleniumTest (selenium-remoterunner.js:125) (匿名函数)(RemoteRunner.html:58)

[错误] Access-Control-Allow-Origin 不允许 Origin null。

[错误] 加载资源失败:Access-Control-Allow-Origin 不允许 Origin null。 (司机,0号线)

[错误] 由于访问控制检查,XMLHttpRequest 无法加载 http://localhost:7777/selenium-server/driver/?seleniumStart=true&localFrameAddress=top&seleniumWindowName=&uniqueId=sel_94166&sessionId=d2e9a9287f5648fc921212a0230f2eb5&counterToMakeURsUniqueAndSoStopPageCachingInTheBrowser=1530146840266&sequenceNumber=0

有没有办法绕过这些?

注意事项: - 如果我尝试使用 *firefox*chrome 我得到:

18:01:17.623 信息 - 正在准备 Firefox 配置文件... 18:01:39.160 错误 - 无法启动新的浏览器会话、关闭浏览器并清除所有会话数据 java.lang.RuntimeException: 等待创建配置文件超时!

请注意消息显示正在准备 Firefox 配置文件,无论我尝试使用 *firefox 还是 *chrome

【问题讨论】:

  • @user8035311 更新了使用 *firefox 的结果
  • 如果你的意思是它在你第一次打开 Firefox 时自动完成的过程。我可以将 Firefox 用作普通浏览器。您指的是其他一些特定于 Selenium 的设置吗?
  • 我刚刚尝试手动创建一个新的 Firefox 配置文件,但它并没有改变这些测试的结果
  • mvn integration-test 如上所述

标签: java maven selenium selenium-webdriver


【解决方案1】:

哇,我从兔子洞回来了。 为了让我的 Selenium 测试在 Mac OSX 上运行,我必须执行以下操作:

  1. 使用*googlechrome驱动程序
  2. 在我的 JRE/JDK 中安装 Java Cryptography Extension:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
  3. 将以下属性值传递给 maven:mvn integration-test -Dmaven.wagon.http.ssl.insecure=true
  4. 将以下配置添加到selenium-maven-plugin

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>selenium-maven-plugin</artifactId>
            <configuration>
                <trustAllSSLCertificates>true</trustAllSSLCertificates>
                ...
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    相关资源
    最近更新 更多