百科

web自动化测试环境搭建

时间:2010-12-5 17:23:32  作者:知识   来源:娱乐  查看:  评论:0
内容摘要:上周帮一个刚转岗的测试同事搭环境,他卡在Chrome浏览器弹不出来这个问题上整整半天。最后发现只是chromedriver版本和浏览器版本差了一个大版本。这种问题在web自动化里太常见了,环境搭好,脚

上周帮一个刚转岗的动化搭建测试同事搭环境,他卡在Chrome浏览器弹不出来这个问题上整整半天。测试最后发现只是环境chromedriver版本和浏览器版本差了一个大版本。这种问题在web自动化里太常见了,动化搭建环境搭好,测试脚本跑通,环境其实就赢了一半。动化搭建

先说说最基础的测试三件套:Python、Selenium、环境浏览器驱动。动化搭建Python建议直接装3.10以上版本,测试别用2.x,环境那都是动化搭建老黄历了。装完在命令行敲python --version能出结果就算过关。测试Selenium用pip装就行,环境pip install selenium,一条命令搞定。真正容易踩坑的是浏览器驱动,Chrome就用chromedriver,Firefox用geckodriver。驱动版本必须和浏览器主版本号一致,比如Chrome 120就用120.x的驱动,差一个小版本都可能报session not created。

装完这些,写个最简单的脚本验证一下:

from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com") print(driver.title) driver.quit() 

能弹出浏览器并打印出"百度一下"就算成功。如果报错说找不到驱动,八成是没把驱动路径加到环境变量里,或者压根没下载对应版本。

接下来是等待策略。新手最容易犯的错就是脚本跑太快,页面元素还没加载出来就去找,结果报NoSuchElementException。我见过有人用time.sleep(5)硬等,这办法笨但确实有效,就是慢得让人抓狂。更好的做法是用显式等待,Selenium自带的WebDriverWait能等到元素出现再继续,比如WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "kw")))。这玩意儿能省你大量调试时间。

再聊个实际案例。之前测一个登录功能,脚本在本地跑得好好的,一放到Jenkins上就各种超时。查了半天发现是Linux服务器上没装中文字体,页面渲染出来的验证码全是方块,OCR识别直接崩了。这种环境差异问题,光看报错信息根本定位不到,得一层层排查。所以说,搭环境这事儿,别光顾着本地跑通,还得想想CI环境里缺什么。

最后提一嘴浏览器选项。headless模式在服务器上很好用,不用真的弹出浏览器窗口,跑起来快还不占桌面。但headless模式下有些行为跟有头模式不一样,比如下载文件、处理弹窗,得额外配置。我自己习惯本地调试用有头模式,提交到CI时切headless,两边都照顾到。

真到了跑不通的时候,别急着改代码,先检查三件事:驱动版本对不对、浏览器有没有更新、selenium和浏览器之间有没有通信障碍。八成问题都出在这几个点上。环境这玩意儿,跟做饭似的,火候调料对了,菜自然好吃。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap