所以我是 Selenium 的新手,我只是想运行一个简单的测试来看看它是否有效。安装所有必要的软件包(并处理其他一些错误)后,出现此消息。
我的代码:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
driver.get('https://www.udemy.com/')
title = driver.title
assert "Udemy" in title
在终端,它说我的错误从这里开始:
Traceback (most recent call last):
File "C:\Users\sindri-21\PycharmProjects\Personal Project - Creating dictionaries\webdriver\tests.py", line 5, in <module>
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
然后:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa0 in position 1: invalid start byte
有什么解决办法吗?
UnicodeDecodeError 是由于 Unicode 编码或解码问题造成的。当程序尝试将字节字符串解码为 UTF-8 但字符串中存在与此编码不兼容的字节时,通常会发生此错误。
修复此错误的可能方法之一是更改 WebDriver Manager 安装路径或更改与运行代码的环境相关的设置。
使用WebDriver管理器: 确保 webdriver_manager 是最新的。您可以在Python环境中运行以下命令来更新软件包:
pip install --upgrade webdriver-manager
不要使用 WebDriver Manager,而是手动设置 WebDriver 路径:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
driver = webdriver.Chrome(service=Service('path_to_chromedriver'))
driver.get('https://www.udemy.com/')
title = driver.title
assert "Udemy" in title
您的 Chrome 驱动程序的地址应位于以下路径中: “C:/Users/您的用户名/.wdm/drivers/chromedriver/win64/您的 驱动程序版本/chromedriver-win32/chromedriver.exe”