我正在尝试通过Maven食谱中的这个示例来运行硒测试:
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信息[org.openqa.selenium.server.SeleniumServer] Java:Oracle Corporation 25.102-b14
17:22:12,725信息[org.openqa.selenium.server.SeleniumServer]操作系统:Mac OS X 10.12.6 x86_64
17:22:12,732 INFO [org.openqa.selenium.server.SeleniumServer] v2.21.0,带有Core v2.21.0。从版本16551构建
17:22:12,841信息[org.openqa.selenium.server.SeleniumServer] RemoteWebDriver实例应连接到:http://127.0.0.1:7777/wd/hub
17:22:12,842信息[org.openqa.jetty.http.HttpServer]版本Jetty / 5.1.x
17:22:12,843信息[org.openqa.jetty.util.Container]启动HttpContext [/ selenium-server,/ selenium-server]
17:22:12,867信息[org.openqa.jetty.util.Container]开始org.openqa.jetty.jetty.servlet.ServletHandler@61a485d2
17:22:12,867信息[org.openqa.jetty.util.Container]启动HttpContext [/ wd,/ wd]
17:22:12,867信息[org.openqa.jetty.util.Container]启动HttpContext [/ selenium-server / driver,/ selenium-server / driver]
17:22:12,867信息[org.openqa.jetty.util.Container]启动HttpContext [/,/]
17:22:12,873信息[org.openqa.jetty.http.SocketListener]在0.0.0.0:7777上启动了SocketListener
17:22:12,873信息[org.openqa.jetty.util.Container]开始org.openqa.jetty.jetty.Server@65ae6ba4
17:22:13.325信息-检查资源别名
Selenium服务器已启动
[INFO]
[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信息[org.openqa.jetty.util.Credential]检查资源别名
17:22:14.369信息-命令请求:会话为空的getNewBrowserSession [* safari,http://www.twitter.com,]
17:22:14.372信息-创建新的远程会话
17:22:14.404信息-为http://www.twitter.com分配的会话1acfb5c8359144f5aba4922bc8406c0c,正在启动...
17:22:14.458信息-启动Safari来访问'file:/var/folders/02/t683l6k918v1s_sr0y8k71zm0000gn/T/customProfileDir1acfb5c8359144f5aba4922bc8406c0c/core/RemoteRunner.html?sessionId = 1acfb5c8%&bcFc%2%WaF%2%Basic%= 1% 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和Friends的开源代码)
但是除此之外,控制台只是无限地坐在那里,“启动Safari来访问”,没有进一步的进展。
我不确定这是Java相关问题还是环境问题。如果有帮助,我正在运行带有Sierra(10.12.6)的Mac Pro Server
更新:几分钟后,它输出:
17:52:23.843错误-无法启动新的浏览器会话,关闭浏览器并清除所有会话数据 org.openqa.selenium.server.RemoteCommandException:超时,等待窗口“ null”出现
如果在开发者控制台中查看,则会看到以下消息:
[错误]不允许加载本地资源:file:///var/folders/02/t683l6k918v1s_sr0y8k71zm0000gn/T/customProfileDird2e9a9287f5648fc921212a0230f2eb5/core/scripts/user-extensions.js [d2e9a9287f5648f2921 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还是* chrome
,消息都会显示正在准备 Firefox 配置文件答案 0 :(得分:0)
哇,我已经从兔子洞里回来了。 为了使Selenium测试能够在Mac OSX上运行,我必须执行以下操作:
*googlechrome
驱动程序mvn integration-test -Dmaven.wagon.http.ssl.insecure=true
将以下配置添加到selenium-maven-plugin
:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<configuration>
<trustAllSSLCertificates>true</trustAllSSLCertificates>
...