问题
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 . EDIT: I didn't think the rest of the code had anything to do with it but i added it just in case
This is The Code
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:\n")
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()
This Is The Error
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 Studio\Shared\Python37_64\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\selenium\webdriver\remote\errorhandler.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.
回答1:
You need to take care of a couple of things:
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')
Execute your
@Test
as non-administrator / non-root user.
Update
Another possible reason is Chrome is not installed in the default location as per the specification:
Solution
There can be two approaches to solve this situation:
- 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/')
回答2:
you have to edit
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
to
driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe")
you miss \
If you get the same error, try running as administrator
or
move chromedriver.exe
to other path like c:/seleniumdriver/chromedriver.exe"
and edit executable_path
来源:https://stackoverflow.com/questions/59489803/selenium-common-exceptions-webdriverexception-message-unknown-error-failed-to