软件测试-web端自动化测试-问题、报错解决

记录学习笔记

1、报错信息:no such element--没有找到元素

原因:元素延迟加载,立即找找不到

解决方案:等一会再找

代码解决:添加隐式等待

#添加隐式等待,防止报错
driver.implicitly_wait(10)

所有找元素都会触发,每隔1s会查找元素,没找到就继续找,直到配置时间过了,还没找到就报错,找到继续执行下一步,加大自动化测试稳定性。

2、报错信息:多次自动化刷脚本,导致验证不通过

原因:大多数网站都有防自动化刷脚本的js验证

解决方案:绕过JS验证,把窗口的自动化标识去掉,使页面识别不到正在自动化刷脚本。

代码解决:固定代码,直接使用,记得导包。在打开浏览器前去掉标识。

#导包
from selenium.webdriver.edge.options import Options
# 去掉自动化测试标识
option=Options()
option.add_experimental_option('excludeSwitches',['enable-automation'])
option.add_argument('--disable-blink-features-AutomationControlled')

代码完成后,在浏览器内添加options=option

driver=webdriver.Edge(options=option)

3、报错信息:element is not attached to the page document

原因:元素找到了,但是没加载出来

解决方案:等待一会,再次操作

代码解决:添加固定等待时间

#导包
import time
#使用
time.sleep(3)

4、报错信息:element not interactable

原因1:元素被遮住
解决方案:把遮住元素关闭,使用代码点击“X”号。

原因2:元素没显示出来
解决方案:把元素显示,元素前面还有操作,代码操作点击把元素显示出来。

5、自动化刷脚本太多,IP被禁用。但手动可以打开。

解决方案:把浏览器默认的user-data带上。

代码解决:用户文件的链接地址从C:\Users\你的电脑用户名\AppData\Local\你使用的浏览器名称

# 添加用户文件  浏览器默认的user data带上,解决跑太多被禁用问题
option.add_argument(r'--user-data-dir=C:\Users\cyxco\AppData\Local\Microsoft\Edge\User Data')

6、解决动态验证码(未解决)

首先需要安装两个库:opencv和playwright库

(1)安装opencv

cmd打开管理员窗口输入:pip install opencv-python

(2)安装playwright

这个库的安装国内源安装很慢,而且不稳定,我使用了阿里源。

操作:在PyCharm的Terminal内输入

pip install playwright -i https://mirrors.aliyun.com/pypi/simple/

下载完成后继续输入

python -m playwright install

参考博客:win10系统开发环境快速安装Playwright python的方法_phoenix339的博客-CSDN博客_playwright安装

卡在了截取页面的某个元素上,我参考了许多博客上的文章代码,但是都没运行起来。

不过在解决问题的过程中也学习了新的知识点。

记录下来

with sync_playwright() as p:
    # playwright使用edge浏览器以无头模式运行脚本,并且通过1000毫秒减慢执行速度
    browser = p.chromium.launch(channel="msedge",headless=False, slow_mo=1000)
    context = browser.new_context()  # 创建浏览器实例
    page = context.new_page()    # 打开新的标签页
    page.goto("https://captcha.ruijie.com.cn/") #截图的网站网址
    print(page.title())#输出网页的标签名字
    page.screenshot(path="screenshot.png")#截屏并且把图片命名
    page.locator(".img").screenshot(path="screenshot.png")#从截取的图片内定位元素
最大化窗口--driver.maximize_window()

遗留问题待到成为老手再来解决吧,新手果然不能好高骛远。

  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值