page contents

用Python操控浏览器,Selenium常见的8个坑及避坑指南

我用Python写Selenium脚本三年多,踩过的坑比写对的代码还多。今天把最常见的8个坑整理出来,希望能帮你少走弯路。

attachments-2026-07-qE7bN6gx6a48665f78c06.png我用Python写Selenium脚本三年多,踩过的坑比写对的代码还多。今天把最常见的8个坑整理出来,希望能帮你少走弯路。

坑一:元素定位不稳定,脚本动不动就报错

很多人写定位直接复制XPath,换台电脑就跑不动了。页面稍微改个结构,脚本就崩。避坑的办法是优先用ID定位,其次是CSS选择器,最后才考虑XPath。实在要用XPath,避免写绝对路径,多用相对路径比如//[@id='search']/input。这样页面改动不大时还能跑。

坑二:页面没加载完就开始操作元素

新手常犯的错。用find_element时页面还在转菊花,程序直接报NoSuchElementException。正确做法是设置隐式等待,比如driver.implicitly_wait(10)。对特殊元素用WebDriverWait配合expected_conditions,等到元素可见再操作。等页面完全加载需要时间,别心急。

坑三:点击无效,明明元素找到了就是点不中

遇到这个坑先检查元素是否被遮挡。弹窗、广告、固定定位的导航栏都可能挡住按钮。解决办法是用JavaScript直接点击,代码很简单:driver.execute_script('arguments[0].click()', element)。还有一种可能是元素在iframe里,得先切换到iframe:driver.switch_to.frame('iframe_name')。

坑四:浏览器窗口没最大化,元素显示不全

某些页面在窗口缩小时会隐藏部分元素。脚本翻来翻去找不到,急死人。启动浏览器时直接设置窗口大小:driver.set_window_size(1920, 1080)。或者直接用driver.maximize_window()最大化。保证所有元素都显示在视野里。

坑五:页面跳转后,原来操作的元素丢了

点击一个链接跳转到新页面,旧页面的元素引用全部失效。很多人在循环里继续用之前的element变量,结果报StaleElementReferenceException。每次操作前重新获取元素,不要缓存元素引用。特别是翻页、提交表单这类会改变页面状态的操作。

坑六:弹窗处理不当,卡死整个流程

alert弹窗不处理,后续任何操作都无效。网上教程说用switch_to.alert,但要注意异步弹窗。有些弹窗是第三方API触发的,需要等几秒才出现。先判断弹窗是否存在再处理:WebDriverWait(driver, 5).until(EC.alert_is_present())。确认弹窗出现后再accept()或dismiss()。

坑七:日期选择器、下拉菜单这类控件不好弄

网上商城经常用自定义日期控件,HTML结构特别复杂。别硬写定位路径,直接用send_keys()输入文字。比如日期输入框支持手动输入,直接传'2025-01-15'比去点日历快得多。下拉菜单同理,用Select类处理:Select(element).select_by_visible_text('选项')。省事又稳定。

坑八:脚本跑得慢,一个页面要等半天

很多人用time.sleep()解决等待问题,结果页面慢时不够用,快时白等。废除所有固定等待,换成显式等待。对需要频繁刷新的监控类脚本,合理设置页面加载策略:driver.set_page_load_timeout(20)。超出时间直接跳过,别让一个页面崩掉整个任务。

写Selenium脚本就像养孩子,磕磕绊绊是常态。把上面这些坑记住,能省下很多调试时间。刚开始会觉得到处都是问题,写多了自然就顺手了。代码不要求一次完美,能跑起来就是胜利。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

 

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

2187 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2228 文章
  3. Pack 2187 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章