新手学 Selenium 是不是总卡在开头?环境搭了半天启动不了浏览器,好不容易打开网页,元素定位又报错,搜遍教程还是解决不了?其实啊,Selenium 入门难的不是知识点本身,是新手容易踩的坑太多。今天兔子哥就从环境搭建讲到元素定位,把新手最常犯的错误一个个拆开讲,保证你看完这篇,能少走很多弯路,一起往下看吧!
一、环境搭建:这三步做好,少踩 80% 的坑
很多新手刚学 Selenium,还没开始写代码就被环境搭建劝退。其实按步骤来,真的不难,关键是细节要注意。
第一步,装 Python。去官网下最新版,安装时一定要勾选 “Add Python to PATH”,这步最容易忘!之前有个朋友没勾这个,结果在 cmd 里输 “python” 全是报错,重新装了三次才发现问题。安装完打开 cmd,输 “python --version”,能看到版本号就说明装对了。
第二步,装 Selenium 库。打开 cmd,输 “pip install selenium” 就行。如果速度慢得像蜗牛,加个国内镜像,比如 “pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple”,亲测速度能快十倍。装完可以输 “pip list” 看看,列表里有 selenium 就说明成了。
第三步,下浏览器驱动。这步最容易出错,Selenium 得靠驱动控制浏览器,驱动版本必须和浏览器版本对应。比如你 Chrome 是 125 版,驱动就得下 125 开头的;要是用 Edge,就下 EdgeDriver。下完别随便放,要么放 Python 安装目录,要么加到系统 PATH 里,不然脚本找不到驱动。
给大家列个环境错误对比表,新手对照着看:
| 错误提示 | 大概率原因 | 解决办法 |
|---|---|---|
| “python” 不是内部命令 | 没勾 Add Python to PATH | 重新安装勾选,或手动加环境变量 |
| 找不到 selenium 模块 | 没装或装错位置 | 重新用 pip install selenium |
| 驱动不存在或版本不匹配 | 驱动版本不对或没放对地方 | 核对浏览器版本下驱动,放 Python 目录 |
不过话说回来,就算步骤对,偶尔也会遇到奇奇怪怪的问题,这时候别慌,重启电脑试试,有时候就是这么神奇。
二、元素定位:新手最容易懵的核心技能
环境搭好了,就该学元素定位了 —— 告诉脚本 “点哪个按钮、填哪个输入框”。这部分方法多,新手容易记混,兔子哥挑最常用的几个讲。
最推荐用ID 定位,简单又稳定,只要元素有 ID,优先用它。比如百度搜索框的 ID 是 “kw”,代码这么写:
from selenium.webdriver.common.by import By search_box = driver.find_element(By.ID, "kw")直接就能找到搜索框,然后用 send_keys 输入内容:
search_box.send_keys("Selenium教程")。如果元素没有 ID,试试XPath 定位,万能定位法,再复杂的元素也能找。比如定位百度搜索按钮,XPath 可以写成
//input[@id="su"],代码就是:search_btn = driver.find_element(By.XPATH, '//input[@id="su"]')XPath 虽然万能,但写长了容易错,新手可以用浏览器右键 “复制 XPath”,不过复制的可能有点长,能简化就简化。
还有类名定位和名称定位,但没有 ID 和 XPath 稳定。比如类名可能重复,名称也可能变,新手刚开始尽量用 ID,不容易出错。
新手定位常犯的错:
- 把 “By.ID” 写成 “By.id”,Python 区分大小写,小写会报错;
- 定位代码写对了,但页面还没加载完就执行,元素还没出来,自然找不到;
- XPath 里的引号没处理好,比如路径里有双引号,外面就得用单引号。
三、常见错误全解决:遇到问题不用慌
学 Selenium 的路上,报错是家常便饭,这几个高频错误解决了,能省不少时间。
问:启动浏览器后秒关,脚本没反应?
答:这是因为脚本执行太快,浏览器还没干活就被关掉了。在代码最后加
time.sleep(5)让它等 5 秒,或者用input("按回车关闭"),手动控制关闭时间。问:元素定位总提示 “no such element”?
答:先检查定位表达式对不对,比如 ID 是不是拼错了;再看看是不是页面没加载完,加
time.sleep(2)等一会儿;如果是动态加载的元素(比如点按钮后才出现),可能需要用显式等待,不过新手先掌握加 sleep 的方法就行。问:输入内容或点击没效果?
答:可能元素被其他东西挡住了,试试滚动到元素位置:
driver.execute_script("arguments[0].scrollIntoView();", 元素);也可能是元素不可用,比如按钮是灰色的,这时候点了也没用,得先让它变成可用状态。关于某些特殊网站的元素定位,比如带影子 DOM 的元素,我目前也没完全搞懂具体机制,得进一步研究,新手遇到这种情况可以先换个简单网站练习。
四、实战小技巧:让你的脚本更稳
最后分享几个新手实用技巧,都是兔子哥踩坑总结的经验。
- 加等待时间:别心疼时间,每个步骤间加
time.sleep(1-2),尤其是打开网页、点击按钮后,等页面加载完再操作,能减少 80% 的报错。 - 用 print 输出调试:定位元素后输
print(元素.text),看看能不能拿到内容,能拿到说明定位对了。 - 截图保存证据:加
driver.save_screenshot("test.png"),脚本跑完看看截图,就知道哪里出问题了。 - 别用太新的浏览器:新版本浏览器可能和驱动不兼容,稍微用旧一点的版本,稳定性更好,这或许暗示着软件兼容性比追新更重要。
新手学 Selenium,别指望一次就能写完美脚本,多试几次,报错了就改,改着改着就熟了。遇到解决不了的问题,复制错误提示到网上搜,大部分新手问题都有答案,别自己硬扛。
最后想说,环境搭建和元素定位是 Selenium 的基础,把这两部分练熟,后面学复杂操作会轻松很多。刚开始慢没关系,每天练一个小例子,比如自动打开百度搜东西,坚持一周就能看到进步。希望这篇教程能帮到你,动手试试吧,自动化测试其实没那么难!
标签: selenium
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~