首页 > 编程问答 >Chrome 版本 127 需要选择默认搜索引擎

Chrome 版本 127 需要选择默认搜索引擎

时间:2024-07-27 12:35:05浏览次数:11  
标签:python selenium-webdriver

Chrome 更新到版本 127 后,我的所有 Selenium 脚本都会引发错误,因为在启动浏览器时我总是必须选择默认搜索引擎。

我使用 ChromeDriver 127.0.6533.72。

有人遇到同样的问题吗?


是的,Chrome 127 及其对应的 ChromeDriver 版本在首次启动时引入了选择默认搜索引擎的提示,这可能会破坏现有的 Selenium 脚本。

以下是一些可能的解决方案:

1. 使用命令行参数禁用首次运行体验:

在启动 Chrome 选项时,添加以下参数:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-features=FirstRunUi")
driver = webdriver.Chrome(options=chrome_options)

这将禁用首次运行体验,包括选择默认搜索引擎的提示。

2. 预先设置默认搜索引擎:

可以使用 Chrome 的命令行参数预先设置默认搜索引擎,从而避免弹出提示。例如,要将 Google 设置为默认搜索引擎,请使用以下参数:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("'--make-default-search-provider-data=https://www.google.com/search?q=%s', '--default-search-provider-name=Google'")
driver = webdriver.Chrome(options=chrome_options)

请注意,需要根据的首选搜索引擎修改 URL 和名称。

3. 使用较旧版本的 Chrome 和 ChromeDriver:

如果不想更改脚本,则可以使用不受此问题影响的 Chrome 和 ChromeDriver 的旧版本。但是,建议尽可能使用最新版本,以利用最新的安全更新和功能。

4. 处理弹出窗口:

尽管这不是最佳解决方案,但可以编写代码来处理弹出窗口并自动选择默认搜索引擎。可以使用 Selenium 的 WebDriverWait expected_conditions 模块来实现这一点。

以下是一个使用 WebDriverWait 处理弹出窗口的示例:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# ... your code ...

driver = webdriver.Chrome()

try:
    # 等待弹出窗口出现
    search_engine_popup = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "searchform")) 
    )

    # 选择默认搜索引擎(例如,Google)
    google_button = search_engine_popup.find_element(By.XPATH, "//button[text()='Google']")
    google_button.click()

except TimeoutException:
    print("未找到搜索引擎弹出窗口")

# ... your code ...

请注意,此代码示例假设弹出窗口中存在一个 ID 为 “searchform” 的元素,并且有一个按钮包含文本 “Google”。需要根据实际情况调整代码。

希望这些解决方案能帮助解决 Chrome 127 中的默认搜索引擎问题。

标签:python,selenium-webdriver
From: 78787332

相关文章

  • Pythonanywhere - ping:套接字:不允许操作
    请帮忙。我有一个Telegram机器人,当我从Bash控制台启动他时,它每60秒ping一次静态IP-它工作正常,但每天停止工作一次。我尝试使用“始终开启任务”,但在日志文件中收到“ping:套接字:不允许操作”。我有5美元帐户,我能做什么?从Bash控制台运行时我看到的内容:---17......
  • python+flask计算机毕业设计社区疫情防控物资调配平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,全球公共卫生事件的频发,尤其是新冠疫情的爆发,对社区治理与应急响应能力提出了前所未有的挑战。社区作为疫情防控的第一线,其物资调配......
  • python+flask计算机毕业设计四川工商学院疫情防控系统的设计与实现(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在全球新冠疫情持续蔓延的背景下,高校作为人员密集、流动性大的特殊场所,其疫情防控工作显得尤为重要。四川工商学院作为一所集教学、科研、......
  • python+flask计算机毕业设计企业人事管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着企业规模的不断扩大与业务复杂度的提升,传统的人事管理方式已难以满足现代企业对高效、精准、自动化管理的需求。企业人事管理涉及员工......
  • python+flask计算机毕业设计外卖食品安全监管微信小程序(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着移动互联网技术的飞速发展,外卖行业作为“互联网+餐饮”的典范,近年来呈现出井喷式增长态势,极大地便利了人们的日常生活。然而,外卖食品......
  • python+flask计算机毕业设计楼盘销售系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着房地产市场的蓬勃发展,楼盘销售作为房地产行业的重要环节,其管理效率与服务质量直接影响到企业的市场竞争力和客户满意度。传统的楼盘销......
  • python+flask计算机毕业设计基于web的小区疫情防控信息管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球公共卫生事件的频发,特别是新冠疫情的持续影响,小区作为城市管理的基础单元,其疫情防控工作显得尤为重要。传统的小区管理方式在面对......
  • Python 3 使用 super() 函数时出现“类型错误:__init__() 获得多个参数值”
    我正在使用继承的Python3编写一个OOP程序,当我尝试像这样初始化子类时遇到标题错误:classParent:def__init__(self,var1,var2):self.var1=var1self.var2=var2#moremethodsthattosomestuffclassChild(Parent):a=1#aan......
  • 为什么我会收到 Python IOError: [Errno 13] 写入文件时权限被拒绝?
    我不明白我做错了什么。我正在运行一些测试并将结果写入文件。写入文件的代码部分如下(在名为Tester的类中):@staticmethoddefprintHeader(resultsFileName):ifnotos.path.isfile(resultsFileName):#Thefiledoesnotexist,thus#......
  • 为什么当我在 cmd 中输入 python - -version 时,除了空行之外什么都没有出现?
    我已经下载了python3.9。但是,在通过命令行检查版本时,我确实得到了一个空行而不是版本。我在cmd上使用了以下命令:python--version有几个原因可能会导致在cmd中输入python--version时只出现空行。以下是一些可能的解决方法:1.Python没有添加到......