【问题标题】:Python: selenium webdriver click button execution problemPython:selenium webdriver点击按钮执行问题
【发布时间】:2020-10-18 14:26:59
【问题描述】:

我编写了一个代码来使用“selenium webdriver”执行按钮单击。

# importing webdriver from selenium
from selenium import webdriver

# Here Chrome  will be used
driver = webdriver.Chrome()

# URL of website
url = "anyurl"

# Opening the website
driver.get(url)

# geeting the button by class name
button = driver.find_element_by_class_name("specified_button")

# clicking on the button
button.click()

安装 selenium 包(使用 pip)后,我确实使用绝对有效的 url 运行了这段代码。但, 它会引发如下错误:

Traceback (most recent call last):
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\common\service.py", line 76, in start
    stdin=PIPE)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 1017, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:/Users/Admin/PycharmProjects/untitled/Self AI/clickonsite.py", line 6, in <module>
    driver = webdriver.Chrome()
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 73, in __init__
    self.service.start()
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\common\service.py", line 83, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

如果有人帮我解决这个问题,我会非常有帮助。谢谢。

【问题讨论】:

    标签: python python-3.x selenium selenium-webdriver webdriver


    【解决方案1】:

    您需要指定 Chrome 驱动程序的位置。

    driver = webdriver.Chrome(r"pathOfYourChromeDriver\chromedriver.exe")
    

    驱动可以从https://chromedriver.chromium.org/downloads下载。

    无论如何,您必须添加time.sleep(),因为您必须给网站加载时间。

    而且最好使用 xpath、id、name、css 选择器而不是类名。

    【讨论】:

    • 驱动连接到chrome浏览器了吗??我的意思是,如果我在 chrome 浏览器中登录了 google 帐户,驱动程序可以访问它吗??
    • 不,Chrome 驱动程序未连接到您在常规谷歌浏览器上的 cookie 和密码。它不会用 cookie 打开 chrome。
    【解决方案2】:

    您也可以使用“webdriver_manager”。通过使用它,您不必在为浏览器发布新版本时更新浏览器驱动程序。这适用于所有浏览器。

    只需两个简单的步骤安装“webdriver_manager”。在命令提示符下执行。

    pip install webdriver_manager
    

    然后在代码中,对于 Chrome:

    from selenium import webdriver
    from webdriver_manager.chrome import ChromeDriverManager
    
    driver = webdriver.Chrome(ChromeDriverManager().install())
    

    对于火狐:

    from selenium import webdriver
    from webdriver_manager.firefox import GeckoDriverManager
    
    driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
    

    对于边缘:

    from selenium import webdriver
    from webdriver_manager.microsoft import EdgeChromiumDriverManager
    
    driver = webdriver.Edge(EdgeChromiumDriverManager().install())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-09
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多