(Python,Selenium)兼容的chrome便携应用程序和chrome驱动程序版本列表?

mbskvtky  于 2022-12-26  发布在  Python
关注(0)|答案(1)|浏览(155)

我很难让chrome portableapps与chromedrivers一起工作,也很难获得通用的"data:,"崩溃指示器。
所有**options**对"data:,"结果没有影响:

def start(self, proxy=None):
    # Setup selenium browser with proxy
    options = Options()
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage') # devtoolsactiveport file doesn't exist
    options.add_argument('--no-default-browser-check')
    options.add_argument('--no-first-run')
    options.add_argument('--disable-gpu')
    options.add_argument('--disable-extensions')
    options.add_argument('--disable-default-apps')
    #options.add_argument('--incognito')
    #options.add_argument('--headless')
    #options.add_argument('--hide-scrollbars')
    #options.add_argument('--log-level=3')  # fatal messages only, to subpress other messages
    options.binary_location = self.loc_executable
    if proxy: #optional proxy
        options.add_argument('--proxy-server=%s' % proxy)
    
    # automation hiding
    #options.add_argument('--disable-blink-features=AutomationControlled')
    #options.add_experimental_option('excludeSwitches', ['enable-logging', 'enable-automation'])
    #options.add_experimental_option('useAutomationExtension', False)
    
    # One static browser driver
    self.driver = webdriver.Chrome(options=options, executable_path = self.loc_webdriver)

    self.driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
    self.driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": user_agent} )
    self.driver.get("https://www.google.com")

我猜 portableapps 版本和 chromedriver 不匹配。

  • Chrome驱动程序107.0.5304.62便携式应用程序版本107.0.5304.107
  • Chrome驱动程序108.0.5359.71便携应用程序版本108.0.5359.99
  • Chrome驱动程序90.0.4430.24便携应用程序版本90.0.4430
    2022-12-22编辑有些进展,问题不是版本。应用dir权限和arg后:
chrome_options.add_argument('--user-data-dir=~/.config/google-chrome')

我仍然崩溃:

selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist

当我在user-data-dir中创建一个虚拟的DevToolsActivePort时,webdriver将在运行时 * 删除 * 该文件,然后再次崩溃。

bkhjykvo

bkhjykvo1#

解决方案可在此处找到:WebDriverException: unknown error: DevToolsActivePort file doesn't exist while trying to initiate Chrome Browser
您需要手动设置目录和调试端口

options.add_argument('--user-data-dir=C:/projects/...') #any dir with write permission
options.add_argument('--remote-debugging-port=9222') #any port

相关问题