undetected_chromedriver无法启动浏览器?

import os
import undetected_chromedriver as uc
from selenium.webdriver.chrome.service import Service


# driver=uc.Chrome()
# driver.get("https://www.baidu.com/")


if __name__ == '__main__':
    service = Service(executable_path=os.path.dirname(__file__)+'/chromedriver.exe')
    driver=uc.Chrome(service=service)
    driver.get("https://www.baidu.com/")

python版本是3.11,
selenium版本是4.12.0 (由于这个版本浏览器闪退,后来降级4.5.0)
undetected-chromedriver 版本是3.5.3
Chrome浏览器版本分别试过, 102.0.5005.61,104.0.5112.29,还有最新版

单独执行代码中注释掉的两行代码,也无法启动浏览器
我一开始怀疑是浏览器版本驱动问题,尝试了上面3个浏览器驱动版本并且对应驱动都是无法启动浏览器
后来又尝试了
驱动版本78.0.3904.105/chromedriver_win32.exe,对应浏览器版本78.0.3904.97
驱动版本117.0.5938.88/chromedriver-win64.exe,对应浏览器版本117.0.5938.89 (正式版本) (64 位)
还是不行,原因不在浏览器版本与驱动版本的一致性


问题解决了:
是selenium版本问题,谢谢各位!
备注:
(采纳的答案的评论里面,才是问题所在)

img

undetected可以根据浏览器版本自动下载对应驱动,你把你下载的chromedriver删除,用最基础的使用代码试试看

import undetected_chromedriver as uc
driver = uc.Chrome()
driver.get('目标网址')

检查一下试试版本不一致的问题啊

引用 皆我百晓生 小程序回复内容作答:
根据你提供的代码和描述,你使用了undetected_chromedriver和selenium库来启动浏览器并访问百度网站。然而,无论你尝试的Chrome浏览器版本是什么,都无法启动浏览器,并且在VS Code调试终端中没有显示任何错误信息。

首先,请确保你已经正确安装了Chrome浏览器,并将其安装路径添加到系统环境变量中。

其次,建议查看一下相关库的文档和更新日志,以确定所使用的库版本是否与Python 3.11兼容。有时候,某些库可能不与最新版本的Python兼容,因此你可能需要降低Python版本或考虑使用其他兼容的库。

另外,你也可以尝试使用原始的selenium.webdriver库来启动浏览器,看看是否能够成功。如果原始库可以正常运行,那么可能是undetected_chromedriver库本身的问题。

最后,检查一下操作系统和驱动程序之间的兼容性。确保你下载的驱动程序版本与你的操作系统和Chrome浏览器版本匹配。有时候,不同的操作系统和浏览器版本需要使用不同的驱动程序版本才能正常工作。

如果以上方法都没能解决问题,你可以尝试在搜索引擎或相关的技术论坛上寻求帮助。提供更多详细的错误信息可能有助于其他人更好地理解和解决你的问题。


from selenium import webdriver

import time

# 创建一个Chrome WebDriver实例
driver = webdriver.Edge()
# 导航到Alibaba网站
driver.get('https://www.baidu.com/')
time.sleep(10)

试试这个方法我都是用这个方法启动的

以下是我的使用样例,undetected_chromedriver 版本和题主一样.
运行环境

  • undetected_chromedriver 3.5.3
  • selenium 4.12.0
  • 浏览器版本 78.0.3904.108

chromedriver 下载链接

https://cdn.npmmirror.com/binaries/chromedriver/78.0.3904.105/chromedriver_win32.zip

from undetected_chromedriver import Chrome, ChromeOptions
from selenium.webdriver.common.by import By

# 创建 ChromeOptions 对象并配置
# r"D:\chromedriver.exe"
options = ChromeOptions()
# options.add_argument("--headless")  # 设置无头模式
# 创建 Chrome 对象 路径最好是设置绝对路径,排查路径的问题
driver = Chrome(options=options, driver_executable_path=r"D:\chromedriver.exe")

# 打开百度首页
driver.get("https://www.baidu.com")

# 输入要查询的问题
query = "undetected_chromedriver 如何使用"
search_box = driver.find_element(By.CSS_SELECTOR, "input[id='kw']")
search_box.send_keys(query)

# 提交搜索表单
search_button = driver.find_element(By.CSS_SELECTOR, "input[id='su']")
search_button.click()

# 等待搜索结果加载完成
driver.implicitly_wait(5) # 等待5秒钟,如果结果在该时间内加载完成则继续执行

# 获取搜索结果
results = driver.find_elements(By.CSS_SELECTOR, "h3[class='c-title t t tts-title'] a")
for result in results:
    title = result.text
    url = result.get_attribute("href")
    print(f"标题:{title}")
    print(f"链接:{url}")
    print()

# 关闭浏览器会话
driver.quit()

undetected-chromedriver需要知道Chrome浏览器的安装路径。你可以手动指定Chrome的可执行文件路径,例如:

from undetected_chromedriver.v2 import Chrome, ChromeOptions

chrome_options = ChromeOptions()
chrome_options.binary_location = '/path/to/chrome/executable'

driver = Chrome(options=chrome_options)
driver.get("https://www.baidu.com/")

/path/to/chrome/executable 替换为你机器上实际的Chrome浏览器可执行文件的路径。

援引讯飞星火:
根据您提供的信息,您在使用undetected_chromedriver时遇到了启动浏览器的问题。首先,请确保您已经正确安装了undetected_chromedriver库。接下来,您可以尝试以下方法来解决问题:

  1. 检查您的Chrome浏览器是否与undetected_chromedriver兼容。您可以在undetected_chromedriver的GitHub页面上查看支持的版本。

  2. 确保您的Chrome浏览器和ChromeDriver版本匹配。您可以在这里找到适合您的Chrome浏览器版本的ChromeDriver。

  3. 尝试使用以下代码来启动浏览器:

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

chrome_options = Options()
chrome_options.add_argument("--disable-blink-features=AutomationControlled")

driver = webdriver.Chrome(executable_path="path/to/chromedriver", options=chrome_options)
driver.get("https://www.baidu.com/")

请将path/to/chromedriver替换为您的ChromeDriver可执行文件的实际路径。

  1. 如果问题仍然存在,您可以尝试更新您的Python、selenium和undetected-chromedriver库到最新版本,然后重试。

可以看一下 undetected_chromedriver 的源码,它是不需要传 service 参数的
修改一下 驱动路径 即可,我有试过,是可以打开浏览器的

import undetected_chromedriver as uc

# driver=uc.Chrome()
# driver.get("https://www.baidu.com/")


if __name__ == '__main__':
    driver_path = r"E:\PycharmProjects\functionTest\chromedriver.exe"
    driver = uc.Chrome(driver_executable_path=driver_path)
    driver.get("https://www.baidu.com/")

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
根据你的描述,你在使用undetected_chromedriver时遇到了启动浏览器的问题。首先,请确保你已经正确安装了undetected-chromedriver库。接下来,你可以尝试以下方法来解决这个问题:

  1. 以管理员身份运行VSCode。有时候,以管理员身份运行VSCode可以解决一些问题。

  2. 尝试使用其他版本的Chrome浏览器和undetected-chromedriver库。可能是由于版本不兼容导致的问题。

  3. 检查你的代码中是否有其他错误。虽然你提到在单独执行代码中的注释掉的两行代码时也无法启动浏览器,但这并不意味着问题已经解决。请仔细检查你的代码,确保没有遗漏或错误的部分。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

看一下版本有没有对应,浏览器版本要相对应,你下载过多少个浏览器都没用

【相关推荐】




如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

用undetected_chromedriver代替selenium解决浏览器打不开网页
可以参考下