3

我对 Selenium 有疑问,无法让它工作。
我想做什么:
我们的一个客户给我们发了一个 Selenium 测试用例,它将在多个位置自动执行,并记录所用的时间。我们想使用 Selenium 和 Firefox Portable,因为我们想让测试完全独立于任何用户输入和在不同位置安装的软件。开始条件就这么多;)
到目前为止我们做了什么:
第一个版本完全用 Java 编写,我们使用 Selenium IDE Plugin -> Export to Java WebDriver 将客户的测试用例导出到 Java。这不能再做,因为客户现在使用 WebDriver 导出不支持的一些功能。由于我们不想改变客户的测试,Java 导出不再是一种选择。
所以对于第一次运行,我们使用这个命令(任何变量都设置正确):

java -jar selenium-2.33.0/selenium-server-standalone-2.33.0.jar -port 5555 
-firefoxProfileTemplate "Firefox\Data\profile" -log logs\selenium_server.log 
-htmlSuite "*firefox" http://localhost:5555 Testsuite.html
logs\results-firefox-%curTimestamp%.html

这会启动我预装的 Firefox,而不是便携式的。在客户机器上,没有启动任何 Firefox,因为它没有安装。所以我不得不使用“自定义”htmlSuite来提供Firefox的路径:

java -jar selenium-2.33.0/selenium-server-standalone-2.33.0.jar -port 5555 
-firefoxProfileTemplate "Firefox\Data\profile" -log logs\selenium_server.log 
-htmlSuite "*custom %FF_DIR%\FirefoxPortable.exe" http://localhost:5555 Testsuite.html 
logs\results-firefox-%curTimestamp%.html

这不起作用,因为如果在 Windows 下运行,Selenium 服务器无法执行此命令,我们会这样做(参见:http ://code.google.com/p/selenium/issues/detail?id=3274 )作为评论 #6有一些差异,我们修补了 selenium Server 独立 Jar 并再次运行测试。现在可以启动浏览器,但无法运行测试。加载第一页后,我们收到错误“访问属性'文档'的权限被拒绝”。
这里的解决方案表明,用户权限问题可能是原因,您应该尝试“chrome”htmlSuite(请参阅:https ://sqa.stackexchange.com/questions/1453/how-to-fix-permission-denied- to-access-property-document ) 所以我们做了:

java -jar selenium-2.33.0/selenium-server-standalone-2.33.0-patched.jar 
-port 5555 -firefoxProfileTemplate "FirefoxPortable\Data\profile" 
-log logs\selenium_server.log -htmlSuite "*chrome %FF_DIR%\FirefoxPortable.exe" 
http://localhost:5555 Testsuite.html logs\results-firefox-%curTimestamp%.html

请注意我们的“修补”硒和“铬”htmlSuite。那也没用。因此,简而言之,结果如下:

  • htmlSuite = firefox:使用预装的 Firefox(如果已安装),而不是便携式的。如果没有安装 FF,则测试完全失败

  • htmlSuite = chrome:服务器无法启动浏览器,因为它试图设置 EnvironmentVariables,运行 Windows 时不支持(参见:http ://code.google.com/p/selenium/source/browse/java/client/src /org/openqa/selenium/os/WindowsProcessGroup.java#67行 67 以下)

  • htmlSuite = googleChrome: Google Chrome Portable 可以启动,但是Chrome浏览器找不到测试指定的一些元素,所以我们不能使用Chrome(更改测试是没有办法的,如上所述)

  • htmlSuite = iexplore: Internet Explorer 启动,但随后出现 JavaScript 错误,引用由 Selenium 创建的自定义 Profile,因此测试在 IE 中也不起作用

  • htmlSuite = custom:Portable Firefox 已启动(yeehaw),但没有足够的权限执行测试。

4

3 回答 3

5

您可以使用 Jenkins 或 TeamCity 等持续集成系统来自动执行测试。

于 2013-07-05T13:07:59.780 回答
2

我们现在决定支持客户在机器上安装 Firefox 进行测试,这样我们就可以毫无问题地使用我们的批处理文件。

至于 selenium 中的错误,请看这里(code.google.com/p/selenium/issues/detail?id=5554#c14),有一个夜间构建的链接,它可以与 Firefox v23 一起工作(至少对我们来说) ,而 Selenium 2.33 没有。

感谢所有做出贡献的人,但我认为我的第一种方法无法像我想象的那样实现:(

于 2013-07-15T07:24:23.890 回答
-1

我解决了这个问题。

访问此链接:http ://www.townx.org/blog/elliot/dealing-self-signed-ssl-certificates-when-running-selenium-server-firefox

第 9 点:删除目录中除 cert_override.txt 和 cert8.db 文件之外的所有内容。

希望能帮助到你

于 2014-08-04T13:21:37.933 回答