【发布时间】: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