gpt4 book ai didi

RSelenium 与较新的 Firefox 图像 : Fail to decode image from marionette

转载 作者:行者123 更新时间:2023-12-02 19:32:27 25 4
gpt4 key购买 nike

我正在使用 RSelenium通过 dockerstandalone-firefox图片 v 3.11.0 .另外,我正在使用 R v 3.4.4Windows 10 (64-bit) .

我面临一个特殊的问题,似乎是任意发生的。这是我的代码:

# In the Docker Terminal
$ docker run -d -p 4445:4444 selenium/standalone-firefox:3.11.0

# In R
require(RSelenium)
require(XML)

remDr <- RSelenium::remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445L)
remDr$open()

remDr$navigate("https://www.betvictor.com/")
Sys.sleep(1)
remDr$screenshot(display = TRUE)

产生以下错误:
Selenium message:Failed to decode response from marionette
Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:33:15.31Z'
System info: host: '29208ebb0e68', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.89-boot2docker', java.version: '1.8.0_162'
Driver info: driver.version: unknown

Error: Summary: UnknownError
Detail: An unknown server-side error occurred while processing the command.
class: org.openqa.selenium.WebDriverException
Further Details: run errorDetails method

我对这个主题做了一些研究:
  • 表示here使用旧版本的 Firefox,例如2.53.0 ,或者使用 Chrome 应该可以解决问题。
  • Here讨论了类似的问题,似乎使用 Selnium 3.4 或更高版本可能会解决该问题。

  • 但是,我尝试使用 standalone-chrome:3.11.0但是 remDr$open()然后产生 Selenium message:Unable to create new service: GeckoDriverService .

    至于 2.,引用 ( RSelenium) 文档:“[The package] 为 Selenium 2.0 WebDriver 提供一组 R 绑定(bind)”,这可以解释为什么首先出现该错误。

    有没有办法解决这个问题,例如是否可以更新 RSelenium包,使其使用更新版本的 Selenium ?

    最佳答案

    这段代码对我有用:

    library(RSelenium)
    library(png)
    library(openssl)

    Sys.setenv(no_proxy="127.0.0.1,localhost,192.168.0.20")

    extraCapabilities <- list(proxy = list(httpProxy = "proxy-server:8081",
    proxyType = "MANUAL",
    sslProxy = "proxy-server:8081"),
    acceptInsecureCerts = TRUE)



    remDr <- remoteDriver(remoteServerAddr = "selenium.server.de"
    , port = 4444
    , browserName = "firefox"
    , extraCapabilities = extraCapabilities)

    remDr$open()

    remDr$navigate("http://google.com")

    remDr$screenshot(file = '/tmp/test.png')

    res <- remDr$getStatus()

    remDr$close()

    我的 Docker-Selenium 支持公司代理。对于正常用例,extraCapabilities 中的这一部分不是必需的。环境变量 no_proxy 也仅在您在代理后面工作时才需要。参数“acceptInsecureCerts = TRUE”很重要,否则较新的 Firefox 版本会出现问题。命令“makeFirexprofile”不再适合我了。这通常在使用代理的说明中找到。结果不是这样。
    RSelenium 的错误消息也没有用。提高 docker 容器上的日志级别更有意义。这适用于 -e JAVA_OPTS="-Dselenium.LOGGER.level=ALL"。这显示了发生的真正错误。

    我希望这会有所帮助。我成功使用了容器 firefox-standalone:3.12。

    关于RSelenium 与较新的 Firefox 图像 : Fail to decode image from marionette,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49854700/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com