selenium使用教程:环境搭建到元素定位,新手常见错误全解决

admin 综合编程开发技术 3


新手学 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

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~