selenium.common.exceptions.WebDriverException:消息:未知错误:无法使用 ChromeDriver 使用 Selenium Python 创建 Chrome 进程

问题描述

我正在尝试使用 selenium 单击一个按钮,所以我让它找到了带有 xpath 的元素,因为我找不到 id .我不认为其余的代码与它有任何关系,但我添加它以防万一

I am trying to click a button using selenium so I made it find the element with the xpath since i couldn't find the id . I didn't think the rest of the code had anything to do with it but i added it just in case

这是密码

import requests
import os
import selenium
from selenium import webdriver
os.system("cls")
print("                                         ")
print("______________     _____________         ________________")
print("| |         | |    |  |       | |        |______________|")
print("| |________ //     |  |  __   | |               | |")
print("| |________ \\     |  | |__|  | |               | |")
print("| |          | |   |  |       | |               | |")
print("| |__________| |   |__|_______|_|               |_|")

print("u001b[34m Welcome To Movie Downloader")
print("u001b[31m Please Make Sure To Not Put Every First Letter In Every Word Capital And Also Make Sure To Put Hyphens Instead Of Spaces Between Words, Also Put The Date The Movie Was Made")
print("u001b[32m For Example: spider-man-homecoming-2017")


def Bot():
    URL = input("u001b[34m What Movie Do You Want To Download:
")
    r = requests.get("https://bila.egy.best/movie/" + URL + "/?ref=search-p1")
    if r.status_code == 200:
        print("u001b[32m The Url Is Valid | Movie Has Been Found")
    else:
        print("u001b[31m The Url Is Invalid")
    print("u001b[0m")
    driver = webdriver.Chrome(executable_path=r'C:chromedriver.exe')
    driver.get("https://bila.egy.best/movie/" + URL + "/?ref=search-p1")
    driver.find_element_by_xpath("//*[@id=watch_dl]/table/tbody/tr[2]/td[4]/a[1]").click()
Answer = input("Would You Like To Bot?")
if Answer == "Yes" or "yes" or "sure" or "Sure":
    Bot()

这是错误

Traceback (most recent call last):
  File "Movie_Download.py", line 32, in <module>
    Bot()
  File "Movie_Download.py", line 27, in Bot
    driver = webdriver.Chrome(executable_path="C:chromedriver.exe")
  File "C:Program Files (x86)Microsoft Visual StudioSharedPython37_64libsite-packagesseleniumwebdriverchromewebdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "C:Program Files (x86)Microsoft Visual StudioSharedPython37_64libsite-packagesseleniumwebdriveremotewebdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:Program Files (x86)Microsoft Visual StudioSharedPython37_64libsite-packagesseleniumwebdriveremotewebdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:Program Files (x86)Microsoft Visual StudioSharedPython37_64libsite-packagesseleniumwebdriveremotewebdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:Program Files (x86)Microsoft Visual StudioSharedPython37_64libsite-packagesseleniumwebdriveremoteerrorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Failed to create a Chrome process.


解决方案

你需要注意几件事:

  • 在传递 chromedriver 二进制文件的 绝对位置 时,使用单个正斜杠以及原始的即 r 开关.所以有效的代码行将是:

  • While passing the absolute location of chromedriver binary use a single forward slash along with the raw i.e. r switch. So the effective line of code will be:

driver = webdriver.Chrome(executable_path=r'C:chromedriver.exe')

  • 以非管理员/非root用户身份执行您的@Test.

    另一个可能的原因是 Chrome 没有按照规范安装在默认位置:

    Another possible reason is Chrome is not installed in the default location as per the specification:

    有两种方法可以解决这种情况:

    There can be two approaches to solve this situation:

    • 卸载 Chrome 并在默认位置重新安装 Chrome.
    • 使用 binary_location 属性指向 chrome 二进制位置.

    • Uninstall Chrome and reinstall Chrome at default location.
    • Use binary_location property to point to the chrome binary location.

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
    driver = webdriver.Chrome(chrome_options=options, executable_path="C:/Utility/BrowserDrivers/chromedriver.exe", )
    driver.get('http://google.com/')
    

  • 相关文章