news 2026/9/29 9:56:49

UI 自动化踩坑记:一次被百度安全验证拦下的测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UI 自动化踩坑记:一次被百度安全验证拦下的测试

报错

在进行《实验案例1:百度搜索软件测试》时发现代码跑完

assert "软件测试" in driver.title 测试报错

断言期望:页面标题里包含“软件测试”。
实际结果:标题并没有包含软件测试即没有成功跳转

调试

反复确认代码编写没有错误

在AI的协助下,写了debug测试文件

from selenium import webdriver from selenium.webdriver.common.by import By import time d = webdriver.Edge() d.get("https://www.baidu.com") d.find_element(By.ID, "chat-textarea").send_keys("软件测试") d.find_element(By.ID, "chat-submit-button").click() time.sleep(3) print("title:", d.title) print("url:", d.current_url) print("窗口数:", len(d.window_handles)) print("h3 个数:", len(d.find_elements(By.XPATH, "//h3"))) print("源码含关键词:", "软件测试" in d.page_source) input("看完页面按回车关闭") # 让浏览器停住,人眼看清到底发生了什么 d.quit()

运行结果如图所示

发现原因

运行结果:title:百度安全验证

原来我的搜索已经成功进行了,但百度把我拦在了安全验证页。

百度检测到我的浏览器是自动化工具(Selenium),于是弹出验证码,要求手动验证。这就是为什么标题里没有"软件测试"——因为根本没到搜索结果页,被拦在验证码页面了。

解决办法

在search()方法中添加强制等待,用于手动过验证

代码如下所示

def search(self,keyword): # # river.find_element(By.ID,"chat-textarea").send_keys("软件测试") # self.driver.find_element(*self.SEARCH_INPUT).send_keys(keyword) self.input_text(self.SEARCH_INPUT,keyword) # # driver.find_element(By.ID,"chat-submit-button").click() # self.driver.find_element(*self.SEARCH_BUTTON).click() self.click(self.SEARCH_BUTTON) # 暂停 40 秒,手动过验证码 import time time.sleep(40) # #点击后切换到新窗口 # self.switch_to_new_window() return self
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 9:53:48

Jlink嵌入式调试实战:SWD接线、Keil配置与烧录失败排查

做嵌入式开发的朋友,桌面上一定躺过那抹蓝色——Jlink。市面上叫它“烧录仿真工具”,听起来好像只是把程序烧进芯片、再用仿真器跑一下,但在STM32、NXP、GD32这些主流MCU项目里,它几乎包揽了从下载固件到在线调试的整条链路。我第…

作者头像 李华
网站建设 2026/9/29 9:53:12

OpenClaw 配 TaoToken:国产龙虾三剑客的 config.toml 骨架与验证动作

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 9:52:55

potable pmd_free_pte_page

pmd_free_pte_page 是 x86-64 架构中用于释放一个 PMD 条目所指向的 PTE 页表页,并刷新对应 TLB的辅助函数,位于 arch/x86/mm/init_64.c。它在内存热移除或页表收缩场景中被调用。核心作用:拆除 PMD 到 PTE 的链接当内核需要回收一个 PTE 页表…

作者头像 李华