selenium - 无法在 perl6 中安装 Selenium::WebDriver

标签 selenium firefox installation raku

我正在这样做:

zef install Selenium::WebDriver

我把它卡在了:
===> Searching for: Selenium::WebDriver
===> Testing: Selenium::WebDriver:ver('0.0.1')
Cannot obtain a session after 10 attempts
  in submethod BUILD at /home/user123/.zef/store/perl6-selenium-webdriver.git/5e3ff320d2f392e44df1433f0544201c154f2590/lib/Selenium/WebDriver/Wire.pm6 (Selenium::WebDriver::Wire) line 66
  in block <unit> at t/05-firefox.t line 45

# Looks like you planned 91 tests, but ran 1
JavaScript error: , line 0: NS_ERROR_FILE_NOT_FOUND: Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIAppStartup.trackStartupCrashEnd]

我的操作系统——arch linux——是最新的。

最佳答案

总结

  • 与所有 Perl 5 或 Perl 6 软件包一样,Selenium::WebDriver 软件包包括一套测试,检查它是否在您的系统上正常工作。1 该测试套件在安装结束时运行,即安装程序下载软件包,运行其构建器代码,然后才运行其测试套件。如果出现错误,则(默认情况下)安装程序会显示错误信息并立即退出。这就是它在你的情况下所做的。
  • 当前的 Selenium::WebDriver 包是 successfully installing 2 months ago完整的 the message showing successan Ubuntu对于在您的系统上失败的相同测试。再说一次,a search of the #perl6 logs for 'selenium'表明 Selenium::WebDriver 使用的模块之一可能存在间歇性错误;这可能确实是问题的根源。
  • The README of the repo for Selenium::WebDriver从一个文档的链接开始,该文档说它描述的协议(protocol)是“过时的”。 Selenium::WebDriver repo 的问题队列中的最新项目标题为 "Add support for Firefox Marionette WebDriver" .如果您认为相关,请考虑在该问题上添加指向此 SO 问题的评论。
  • 如果您查看错误消息,您会看到 Firefox 测试失败。一种可能性是 Firefox 或某些相关软件中存在错误,超出了官方最新的 arch linux。


  • 对 Firefox 错误消息的一些看似简单的响应:
  • 在尝试安装 Perl 6 包之前尝试手动加载 Firefox。这能解决问题吗?
  • 我不知道你有什么选项可以让 Selenium::WebDriver 包除了完全卸载它之外看不到你的 Firefox,但也许你可以这样做?然后尝试再次安装(然后该软件包可能会测试/使用,例如,Chrome 而不是 Firefox)。
  • 如果这不起作用,请考虑 posting a new Selenium::WebDriver repo issue (并链接到这个 SO 问题)。


  • 顶级错误消息是“尝试 10 次后无法获得 session ”。它由 line 66 生成包的 lib/Selenium/WebDriver/Wire.pm6 文件。在这种情况下,我认为该行没有多大帮助,但 imo 总是值得至少快速浏览一下与错误消息对应的源代码。

    查看下一个级别,我们看到错误来自“t/05-firefox.t line 45”,即 my $driver = Selenium::WebDriver::Firefox.new; .看起来它正在尝试连接到 Firefox 并失败。进一步查看该测试脚本可以看到它认为它在您的系统上找到了 Firefox(因为 unless which('firefox') { ... } 中的代码块显然没有触发)。

    错误信息最深处显示遇到“Javascript错误”,与nsIAppStartup.trackStartupCrashEnd有关.

    通常,问题特定于所涉及的软件版本。 Selenium::WebDriver 软件包版本显然是 0.0.1但很高兴看到其他主要部分的版本信息,包括您的 Perl 6 编译器 (perl 6 -V iirc)、安装程序 (zef -V iirc),以及您的操作系统和 Firefox。在这种特殊情况下,我很确定问题不在于您的 Perl 6 编译器( Rakudo ),也不在于安装程序( zef ),但我可能是错的,我仍然建议您在使用时始终考虑包含大量的版本信息发布您的第一个问题版本。

    1 Selenium::WebDriver 包的测试套件按照 Perl 6 testing guidelines 工作一般来说,根据 the Testing section of the Selenium::WebDriver's repo README尤其。

    2 您通常可以强制 Perl 安装程序继续,无论您是否知道错误对您的情况无关紧要。我认为是 -force-test强制zef在第一个错误和 -force-install 之后继续测试而不是停止完成安装,尽管出现错误。

    关于selenium - 无法在 perl6 中安装 Selenium::WebDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44517271/

    相关文章:

    java - 无法使用 selenium 单击 <label for ="chk"> 标签内的复选框

    javascript - 如何在 Selenium 或 Javascript 中模拟 mouseenter 事件?

    firefox - 如何更改Mozilla开发人员工具主题

    firefox - 说服 Firefox 通过 HTTPS 发送 If-Modified-Since header

    testing - 如何使用 Selenium 强制执行 onClick 事件?

    java - TestNG - 为什么 testNG 报告器不打印出 else 语句?

    javascript - 有没有浏览器提供的API可以直接截取页面dom的截图?

    r - R : (Package which is only available in source form, 错误,可能需要编译 C/C++/Fortran)

    r - 导致包出现故障的特殊安装警告

    installation - golang : go install tries/usr/local instead of GOPATH