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
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")
_
エラーは、プログラムがlibraryをChromeDriverバイナリと見なしていたことを明確に示しています。したがって、エラー。
しかし、 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
_
driver=webdriver.Chrome("C:\\Users\\SQA Anas\\Downloads\\chromedriver.exe")
完全なchromeドライバーパスを次のように入力してください: "C:\ Users\SQA Anas\Downloads\chromedriver.exe"
それは私のために働きます:)
Linuxの場合、許可を与えることで問題が解決します。
使用する
Sudo chmod +x chromedriver