web-dev-qa-db-ja.com

selenium.common.exceptions.WebDriverException:メッセージ:「ライブラリ」実行可能ファイルのChromeDriverに対する権限が間違っている可能性があります

chrome webdriverを使用して " https://www.google.com "に接続したい。以下はコードです。

from Selenium import webdriver  
import time  

driver = webdriver.Chrome("C:\\Users\\faisal\\library")  
driver.set_page_load_timeout(10)  
driver.get("https://www.google.com")  
driver.find_element_by_name("q").send_keys(" automation by name ")  
driver.find_element_by_name("blink").click()  
time.sleep(5)  
driver.close()  

テストを実行すると、次のエラーメッセージが表示されます。権限の問題です。

C:\Users\faisal\PycharmProjects\firstSeleniumTest2\venv\Scripts\python.exe C:/Users/faisal/PycharmProjects/firstSeleniumTest2/test.py
Traceback (most recent call last):
  File "C:\Users\faisal\PycharmProjects\firstSeleniumTest2\venv\lib\site-packages\Selenium\webdriver\common\service.py", line 76, in start
    stdin=PIPE)
  File "C:\Python\lib\subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "C:\Python\lib\subprocess.py", line 997, in _execute_child
    startupinfo)
PermissionError: [WinError 5] Access is denied

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/faisal/PycharmProjects/firstSeleniumTest2/test.py", line 4, in <module>
    driver = webdriver.Chrome("C:\\Users\\faisal\\library")
  File "C:\Users\faisal\PycharmProjects\firstSeleniumTest2\venv\lib\site-packages\Selenium\webdriver\chrome\webdriver.py", line 68, in __init__
    self.service.start()
  File "C:\Users\faisal\PycharmProjects\firstSeleniumTest2\venv\lib\site-packages\Selenium\webdriver\common\service.py", line 88, in start
    os.path.basename(self.path), self.start_error_message)
Selenium.common.exceptions.WebDriverException: Message: 'library' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home


Process finished with exit code 1
4
faisal abdulai

C:\Users\faisal\libraryはchromedriverへの正しいパスではありません。 chromedriverファイルへの実際のパスを指定します。

エラーはそれをすべて言います:

_Selenium.common.exceptions.WebDriverException: Message: 'library' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home
_

あなたが言及したコードブロックで:

_driver = webdriver.Chrome("C:\\Users\\faisal\\library")
_

エラーは、プログラムがlibraryChromeDriverバイナリと見なしていたことを明確に示しています。したがって、エラー。

しかし、 Selenium.webdriver.chrome.webdriver のドキュメントによると、WebDriver()の呼び出しはなので :

_class Selenium.webdriver.chrome.webdriver.WebDriver(executable_path='chromedriver', port=0, options=None, service_args=None, desired_capabilities=None, service_log_path=None, chrome_options=None)
_

したがって、Key_executable_path_とValueを単一のqoute内の絶対パスとして送信するように変更する必要があります_''_と生の_(r)_スイッチを次のように組み合わせます。

_driver = webdriver.Chrome(executable_path=r'C:\Users\faisal\library\chromedriver.exe')
_

更新

@ Mangohero1からの反対の質問によると-粗い_executable_path_はオプションですが、絶対パスのみを提供する場合は、絶対パスは、キー_executable_path_へのと見なされます。

_class WebDriver(RemoteWebDriver):
    """
    Controls the ChromeDriver and allows you to drive the browser.

    You will need to download the ChromeDriver executable from
    http://chromedriver.storage.googleapis.com/index.html
    """

    def __init__(self, executable_path="chromedriver", port=0,
         options=None, service_args=None,
         desired_capabilities=None, service_log_path=None,
         chrome_options=None):
    """
    Creates a new instance of the chrome driver.

    Starts the service and then creates new instance of chrome driver.

    :Args:
     - executable_path - path to the executable. If the default is used it assumes the executable is in the $PATH
_
2
DebanjanB

driver=webdriver.Chrome("C:\\Users\\SQA Anas\\Downloads\\chromedriver.exe")

完全なchromeドライバーパスを次のように入力してください: "C:\ Users\SQA Anas\Downloads\chromedriver.exe"

それは私のために働きます:)

0
Muhammad Anas

Linuxの場合、許可を与えることで問題が解決します。

使用する

Sudo chmod +x chromedriver
0
Tessaracter