环境

Windows 10 1809 LTSC Build 17763 64位
Chrome 90.0.4430.85 64位
Python 3.7.9 32位
selenium 3.141.0
pywin32 300
pyHook 1.5.1
PyUserInput 0.1.11

文件结构

D:\Project\Demo01
D:\Project\Demo01\Bats
D:\Project\Demo01\Cookies
D:\Project\Demo01\ChromeDatas
D:\Project\Demo01\Libs
D:\Project\Demo01\WebDrivers

下载 ChromeDriver

在 Chromium 官网中,根据提示下载与本地 Chrome 匹配的 ChromeDriver。
原:chromedriver.chromium.org/downloads
新(原即将弃用):sites.google.com/chromium.org/driver/downloads?authuser=0

安装依赖

pip install selenium
pip install pywin32
pip install D:\\Project\\Demo01\\libs\\pyHook-1.5.1-cp37-cp37m-win32.whl
pip install PyUserInput

简单示例

在 demo.py 文件同级目录下,新建 ChromeDatas 文件夹。
CMD 或 PowerShell 切换到 Chrome 目录,执行:

chrome.exe --remote-debugging-port=9999 --user-data-dir="%root%\ChromeDatas\demo01"

remote-debugging-port:指定远程调试端口
user-data-dir:指定用户数据目录

demo.py

import time
import os

from selenium import webdriver
from selenium.webdriver.chrome.options import Options


root = os.getcwd()


def start_chrome():
    print('start_chrome')
    bat = root + '\\Bats\\start_chrome.bat'
    os.system(bat)
    time.sleep(5)


def driver_control_chrome():
    print('driver_control_chrome')
    chrome_options = Options()
    chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9999")
    chrome_driver = root + '\\WebDrivers\\chromedriver.exe'
    driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
    time.sleep(1)
    return driver


def main():
    #start_chrome()
    time.sleep(1)
    driver = driver_control_chrome()
    time.sleep(1)
    driver.get('https://www.baidu.com')
    time.sleep(1)
    driver.find_element_by_id('kw').send_keys('www.yudelei.com')
    time.sleep(1)
    driver.find_element_by_id('1').find_element_by_tag_name('a').click()


if __name__ == '__main__':
    main()

相关错误

错误一

ImportError: cannot import name ‘PyKeyboard’ from ‘pykeyboard’

pykeyboard 项目已经合并到 PyUserInput 中。

pip install PyUserInput

错误二 缺少依赖

pywin32

no module named pywin32
pip install pywin32

pyHook

no module named pyHook

依赖库:www.lfd.uci.edu/~gohlke/pythonlibs/
在依赖库中,根据相关条件,选择正确版本文件,将其下载到本地后,再进行安装。
此处,根据环境,下载到的实际文件为:pyHook-1.5.1-cp37-cp37m-win32.whl

pip install D:\\Project\\Demo01\\libs\\pyHook-1.5.1-cp37-cp37m-win32.whl

若 pip install pyhook,则安装的为支持 Python 2 的 pyhook。

错误三 依赖平台错误

ERROR: pyHook-1.5.1-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform.

重新下载对应平台的依赖。

参考

chromedevtools.github.io/devtools-protocol/
github.com/PyUserInput/PyUserInput

最后修改:2021 年 04 月 24 日 12 : 36 AM
如果觉得文章帮助了您,您可以随意赞赏。