gpt4 book ai didi

ruby - 无法在 headless 模式下启动 Chrome

转载 作者:行者123 更新时间:2023-12-04 18:38:31 25 4
gpt4 key购买 nike

使用 Windows 子系统 WSL2。我正在尝试在 Ubuntu 20.04 中打开浏览器。
按照命令安装 google chrome 和 chrome-driver
https://tecadmin.net/setup-selenium-chromedriver-on-ubuntu/
通过终端启动 chrome 时遇到问题。也无法初始化浏览器。
版本:

  • window 10
  • Ubuntu 20.04
  • 谷歌浏览器 102.0.5005.61
  • ChromeDriver 102.0.5005.61
  • Selenium 网络驱动程序 (4.1.0)
  • 女仆 (7.1.0)

  • 当我尝试通过终端打开 google-chrome 时。
    $google-chrome

    Error: [0530/135205.172753:ERROR:exception_handler_server.cc(361)] getsockopt: Invalid argument (22)

    $sudo update-alternatives --config x-www-browser


    Selection Path Priority Status
    ------------------------------------------------------------
    * 0 /usr/bin/google-chrome-stable 200 auto mode
    1 /usr/bin/chromium-browser 40 manual mode
    2 /usr/bin/google-chrome-stable 200 manual mode
    3 /usr/bin/wslview 30 manual mode
    我也尝试在 IRB 中初始化浏览器。
    require 'watir'
    browser = Watir::Browser.new(:chrome)

    Error: Net::ReadTimeout


    也尝试重新安装子系统。仍然面临同样的问题。

    最佳答案

    几个可能的问题:

  • 首先,您提到您在 WSL2 上,但您收到的 Chrome 错误让我相信您可能在 WSL1 上。如果我运行 google-chrome,我会看到同样的错误在 WSL1 上,但不在 WSL2 上。
    使用 wsl.exe -l -v 仔细检查.您可能需要使用 wsl --set-version <distro> 2 将实例转换为 WSL2 .
  • 二、运行google-chrome这样,即使在 WSL2 上,也需要 X 服务器。 Windows 10 中的 WSL 不支持 GUI 应用程序,因此您需要在 Windows 中安装和配置 X 服务器。您会找到有关该主题的其他问题和答案,因此我不会在这里花太多时间,因为您真正的问题是关于 headless 运行 Chrome。
  • 只要您正在运行 WSL2,您就应该能够使用 Watir headless 运行 Chrome。看起来您缺少的主要内容是没有使用 headless: true 调用 Watir根据 this doc 的 Chrome 选项.
    以下是我使用 Watir 和 Chromedriver 所采取的步骤。请注意,第一行是您链接到的方向的固定版本,因为它需要 sudo apt-key add而不是 sudo curl :
    curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add
    sudo bash -c "echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' >> /etc/apt/sources.list.d/google-chrome.list"
    sudo apt update
    sudo apt install -y google-chrome-stable
    google-chrome --version # To check the Chromedriver version to download
    cd ~
    wget https://chromedriver.storage.googleapis.com/102.0.5005.61/chromedriver_linux64.zip

    unzip chromedriver_linux64.zip
    mv chromedriver ~/.local/bin # A directory on your path

    gem install --user-install watir

    irb
    在 irb 中:
    require 'watir'
    browser = Watir::Browser.new :chrome, headless: true
    browser.goto 'https://stackoverflow.com/q/72432711/11810933'
    puts browser.title
    这会在此处返回您的问题的标题。
    也可以使用 headless包,如 this page 中所述.
    添加以下内容:
    sudo apt install xvfb
    gem install --user-install headless
    然后在irb中:
    require 'watir'
    require 'headless'

    headless = Headless.new
    headless.start

    browser = Watir::Browser.new(:chrome)
    browser.goto 'https://stackoverflow.com/q/72432711/11810933'
    puts browser.title

    headless.destroy
  • 关于ruby - 无法在 headless 模式下启动 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72432711/

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