(selenium+python)_UI自动化12_web UI自动化实例(以京东搜索加车为例)

前言

Selenium 是一个用于Web网页UI自动化测试的开源框架,可以驱动浏览器模拟用户操作。在此以京东搜索加车为实例,展示下selenium+python如何模拟用户操作,进行自动化测试。

环境搭建

MAC下selenium环境搭建可参考:https://www.cnblogs.com/mini-monkey/p/12074914.html

Windows版本环境搭建待后期更新。

启动浏览器

前提:已下载安装对应浏览器驱动

1,导入webdriver包

2,启动浏览器

备注:

selenium目前支持的浏览器为:chrome、edge、Firefox、IE、Opera、Safari。

编写京东搜索加车脚本

1,打开京东页

京东首页地址:https://www.jd.com/,故进入京东首页如下:

2,打开浏览器开发者模式

定位元素前需先打开浏览器开发者模式,查看页面源码

例-打开chrome开发者模式:

  windows:快捷键F12

  Mac ios :快捷键option+command+i

3,元素定位

元素定位方法可参考:https://www.cnblogs.com/mini-monkey/p/12074940.html

一般元素id存在时,先根据id定位,其次是class、name属性,然后再是xpath、css等去定位。优先级不一定是这样的,小编一般习惯这样定位,大家可以根据实际情况选择合适的定位方式。(当一种方法无法定位到元素时,可尝试其他方法进行定位)

京东搜索商品加车过程如下:

首页点击搜索框->输入搜索关键词,点击搜索btn->点击商品(进入商详页)->点击“加入购物车”加车

实现搜索加车自动化操作可根据以上步骤展开编写,京东搜索商品加车脚本如下(以搜索“微波炉”为例):

备注:由于页面加载需要一定时间,可在需要等待的地方添加等待时间。

实例代码详情

京东搜索加车总代码如下:

 1 # 模拟京东搜索加车
 2 from selenium import webdriver
 3 from time import sleep
 4
 5 driver = webdriver.Chrome()  # 启动chrome浏览器
 6 driver.get(‘https://www.jd.com/‘)  # 打开京东
 7 sleep(3)
 8
 9 search_ele = driver.find_element_by_id("key")  # 搜索输入框
10 search_ele.send_keys("微波炉")  # 输入关键词-微波炉
11 driver.find_element_by_class_name("button").click()  # 点击搜索btn
12 sleep(3)
13
14 element = driver.find_element_by_class_name("gl-item")
15 driver.execute_script("arguments[0].scrollIntoView();", element)  # 滑动至商品可见
16 sleep(2)
17 element.click()  # 点击第一个商品-进入商详页
18
19 windows = driver.window_handles
20 driver.switch_to.window(windows[-1])  # 切换至商详窗口
21 driver.execute_script("window.scrollTo(0,500)")  # 向下滑动500个像素
22 driver.find_element_by_id("InitCartUrl").click()  # 点击加入购物车

原文地址:https://www.cnblogs.com/mini-monkey/p/12109716.html

时间: 2024-10-01 04:48:13

(selenium+python)_UI自动化12_web UI自动化实例(以京东搜索加车为例)的相关文章

接口自动化与UI自动化两者的可行性

1.首先接口测试是跳过前端界面对服务端的测试,UI测试是对前端界面的测试,从分层测试的角度考虑,两者不应该是可以互相取代的关系. 2.从公司开展自动化的的角度考虑,可以重点关注这个项目开展接口自动化和UI自动化的分别需要的时间消耗.自动化测试人员成本.项目开展自动化测试的可行性.接口自动化和UI自动化的投入产出比,最终来确定开展接口自动化和UI自动化的比重. 3.从自动化测试覆盖率和难易程度来考虑,一般来说,系统中可测试的接口数量要比前端界面的功能点要少,并且接口的改动频率比前端界面改动频率低,

(selenium+python)_UI自动化03_定位新开窗口内元素

前言 浏览器点击web网站链接时,经常在当前窗口的基础上打开另一个新的窗口.如下: selenium定位新窗口元素,需要先切换到新窗口,再定位元素,否则会出现报错“NoSuchElementException: Message: no such element...” 定位新窗口元素 1,获得窗口句柄 driver.current_window_handle # 获得当前窗口句柄 driver.window_handles # 获得所有窗口句柄 2,切换至新窗口 all_pages = driv

自动化--APP UI自动化--Airtest学习

看到其他同事在使用airtest,于是学习一下 AirtestIDE提供了一个比较全的官方文档,讲解.操作都蛮细的 http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html 使用airtest执行ui自动化,首先要: 1.安卓 AirtestIDE 官方安装  http://airtest.netease.com/ 或 网盘安装: 链接:https://pan.baidu.com/s/1IaTR_ZPxy81mCPwGsyR

(selenium+python)_UI自动化05_定位select下拉列表

前言 web网页大多选择功能使用下拉列表方式实现,在selenium进行自动化过程中,可通过Select类实现下拉列表的多种操作. Select常用方法 select_by_index() # 通过索引定位-选项 select_by_value() # 通过value值定位-选项 select_by_visible_text() # 通过文本值定位-选项 deselect_all() # 取消所有选项 deselect_by_index() # 取消对应index选项 deselect_by_v

(selenium+python)_UI自动化09_定位alert弹窗

前言 web网站中某些点击操作会触发alert弹窗.在selenium进行自动化过程中,模拟操作alert弹窗时直接定位会报错找不到元素.需要先切换到alert然后用alert处理方法进行操作. alert常用方法 switch_to.alert # 切换到alert弹窗 text # 获取弹出框文本 accept() # 确定 dismiss() # 取消 send_keys() # 输入 实例 模拟操作alert步骤如下: 点击某按钮弹出alert-->切换到alert-->操作alert

(selenium+python)_UI自动化10_cookie常用操作

前言 selenium进行自动化过程中,常需要用到cookie操作,常用的cookie操作有:获取所有cookie.获取具体cookie值.删除cookie.添加cookie等. Chrome中查看cookie 1. Chrome打开开发者模式 windows:快捷键F12 Mac ios :快捷键option+command+i 2. 查看cookie 点击Application->点击cookies,查看cookie信息 cookie常用方法 driver.get_cookies() # 获

(selenium+python)_UI自动化04_定位iframe框架内元素

什么是iframe? iframe是HTML标签,作用是文档中的文档(即在当前 HTML 文档中嵌入另一个HTML文档),或者浮动的框架(FRAME).iframe元素会创建包含另外一个文档的内联框架(即行内框架). iframe框架内元素定位 selenium中定位iframe内元素,需先切换到iframe框架内,然后再进行元素定位,否则会报错找不到元素. 一.iframe常用切换 driver.switch_to_frame(iframe_element) # 切换至iframe drive

[python]pytest实现WEB UI自动化

前言:其实这篇写的是pytest的测试框架运用,实现自动化和https://www.cnblogs.com/Jack-cx/p/9357658.html 原理一致 1.为啥不用unittest Pytest相对Unittest更加灵活一点,unittest需要写类继承unittest.TestCase类,pytest不需要可写可不写类,也支持生成html测试报告 2.创建工程 &对比上面robot的工程,增加一个PyUnit目录和report,这里主要放单元测试框架其他实现思路一致,report

自动化--APP UI自动化--RF学习

使用robotframe执行app 自动化 首先要 1.打开appium 2.手机需开启开发者模式(设置-系统-开发人员选项-USB调试) rf的脚本如下: 1 Comment 地址 设备 版本号 设备号(模拟器可随便写个值) 包名 2 open application http://localhost:4723/wd/hub platformName=Android platformVersion=x.x.x deviceName=xxxxx appPackage=xxx.xxx appAct