Python + Selenium Web自动化测试案列2--前台购物流程

本文详述了使用Python结合Selenium进行Web自动化测试的购物流程,包括用户登录、商品搜索、购物车操作等。讨论了脚本稳定性、元素定位、窗口切换等关键点,以及隐式等待与显式等待、单个元素与元素集合的选择等问题。并针对新窗口元素操作、下拉框选择等常见问题提供了解决方案。
摘要由CSDN通过智能技术生成

用户前台登录–>搜索商品–>加入购物车–>购物车结算–>添加收货地址

涉及知识点:
1、登录后进行等待和窗口最大化操作:

智能等待–隐式等待
driver.implicitly_wait(10)
窗口最大化
driver.maximize_window()

2、问题:脚本运行时好时坏(10次中8次成功,2次失败)

原因:脚本稳定性不够,由于页面响应时间不一致造成
解决方案:增加隐式等待 implicitly_wait(10)

智能等待–隐式等待:
优点:智能的判断,下一行代码应该等待多久;只需要写一次,后面所有代码都生效
缺点:有些特殊情况不起作用,例如页面没有重新加载,只是局部信息更新
若页面1s加载成功找到元素,则等待1s;若页面10s加载成功找到元素,则等待10s;若10s后,页面未加载成功找到元素,则抛出异常

3、driver.implicitly_wait(5)隐式等待 和 time.sleep(5)de 区别:

两者都是时间等待的作用
区别:
隐式等待是一种智能等待,可以自动判断需要等待多久,括号中的5表示最大等待时间五秒,如果5秒后页面UI人没有加载成功,抛出异常,而time.sleep(5)是指固定等待
隐式等待只需要在声明driver之后写一次代码,time.sleep在每次需要延时等待时,都要写重新写

4、find_element_by_class_name() 和 find_element_by_css_selector()的区别:

find_element_by_class_name() 不支持 同时用两个class name定位
find_element_by_css_selector() 支持使用多个class name定位,在每个class name前面加上小数点即可,例如".shopCar_btn_03.fl"
如果不确定多个class name中谁是唯一的,可采用此方法

5、问题:新窗口中的元素不能定位和操作

原因:点击某些连接,导致浏览器出现了新窗口,但selenium仍然工作在原来的窗口
解决方案:进行窗口切换
1、找到新窗口的句柄
new_windows = driver.window_handles[-1]
2、通过句柄切换到新窗口
driver.switch_to.window(new_windows)

6、find_element 和 find_elements 的区别:

find_element 找到页面中满足条件的第一个元素
find_elements 找到页面中所有满足条件的元素,然后通过下标选择第几个元素,经常用例组合class_name或者tag_name使用
可理解为:find_element() == find_elements()[0]

7、问题:如何选择下拉框中的选项

解决方案:定位找到元素后,将其强制转换成下拉框类型 Select(页面元素)
下拉框选择:调用select类中的方法
Select(页面元素).select_by_visible_text(“选项的文本值”)
Select(页面元素).select_by_.value(选项的value属性的值)
Select(页面元素).select_by_index(第几个选项)

8、问题:Select自动导包错误

解决方案:光标定位在Select上,Alt + Enter,选择import this name --> 选择导入 selenium.webdriver.support.select

代码:

# ###########################################################
# 用户前台登录-->搜索商品-->加入购物车-->购物车结算-->添加收货地址
# ###########################################################
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值