【问题标题】:Is running Selenium on Google Colab possible?是否可以在 Google Colab 上运行 Selenium?
【发布时间】:2021-11-07 16:49:00
【问题描述】:

我在直接从 Google Colab 使用 Selenium 时遇到了困难。每当我在本地机器上运行下面的代码时,我都会成功,但是我想在 Colab 中测试相同的应用程序,但是我测试的所有选项都无法成功。

import warnings
warnings.filterwarnings('ignore')
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common.exceptions import InvalidSessionIdException
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from google.colab import drive
drive.mount('/content/gdrive', force_remount=True)

options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument('--ignore-certificate-errors-spki-list')
options.add_argument('--ignore-ssl-errors')
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) 
options.add_argument("--no-sandbox") 
options.add_argument("--disable-setuid-sandbox") 
options.add_argument("--disable-dev-shm-using") 
options.add_argument("--disable-extensions") 
options.add_argument("--disable-gpu") 
options.add_argument("start-maximized") 
options.add_argument("disable-infobars")
options.add_argument(r"user-data-dir=.\cookies\\test") 
options.binary_location = '/usr/bin/google-chrome'

driver = webdriver.Chrome(options=options, executable_path='/usr/bin/chromedriver') #Error occurs in this function
driver.implicitly_wait(5)

print("Current session is {}".format(driver.session_id))

我还运行了以下命令:

!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin

尝试运行上述代码后,出现以下消息: WebDriverException:消息:未知错误:/usr/bin/google-chrome 中没有 chrome 二进制文件

我做错了吗?

【问题讨论】:

    标签: python google-chrome selenium-webdriver google-colaboratory


    【解决方案1】:

    尝试删除此行

    options.binary_location = '/usr/bin/google-chrome'
    

    并查看它是否适用于默认二进制位置。不要忘记安装驱动程序

    !apt-get update 
    !apt install chromium-chromedriver
    

    【讨论】:

    • 我按照您的建议进行了操作,但再次出现错误,但消息已更改:WebDriverException:消息:未知错误:Chrome 无法启动:异常退出。 (未知错误:DevToolsActivePort 文件不存在)(从 chrome 位置 /usr/bin/chromium-browser 启动的进程不再运行,因此 ChromeDriver 假设 Chrome 已崩溃。)
    • 看来,某些选项会导致配置错误。你真的需要所有这些选项吗?通常,您可以只保留其中三个:options.add_argument('--headless')、options.add_argument('--no-sandbox')、options.add_argument('--disable-dev-shm-usage' )。
    【解决方案2】:

    我创建了一个库来帮助简化它。

    !pip install kora
    from kora.selenium import wd  # web driver
    print(wd.session_id)  # 8be87366df11b09b552fb4ad7efbd696
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-04
      • 2019-08-03
      • 2020-04-19
      • 1970-01-01
      • 2020-09-26
      • 2021-05-31
      • 2022-07-28
      • 2019-07-26
      相关资源
      最近更新 更多