Web自动化测试进阶

Selenium自动化测试框架

1.什么是框架?
框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。
框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。
框架,其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。

2.为什么使用框架?
1)自己从头实现太复杂
2)使用框架能够更专注于业务逻辑,加快开发速度
3)框架的使用能够处理更多细节问题
4)使用人数多,稳定性,扩展性好

Selenium概述

3.webdriver工作原理

在这里插入图片描述
Selenium概述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Selenium API基础

1.浏览器驱动对象
1)库的导入 from selenium import webdriver
2)创建浏览器对象
driver = webdriver.xxx()
使用dir(driver)查看方法

3)浏览器尺寸相关操作
maximize_window() 最大化
get_window_size() 获取浏览器尺寸
set_window_size() 设置浏览器尺寸
案例: 脚本操作打开一个测试浏览器,并调整其大小

在这里插入图片描述

3)浏览器位置相关操作
get_window_position() 获取浏览器位置
set_window_position(x,y) 设置浏览器位置
注:显示器以左上角为(0,0),所有的位置操作都是相对于显示器左上角展开的位移操作,单位是像素。

4)浏览器的关闭操作
close() 关闭当前标签/窗口
quit() 关闭所有标签/窗口

案例: 打开浏览器,调整大小,调整位置,并关闭

在这里插入图片描述

4)页面请求操作
driver.get(url) 请求某个url对应的响应
refresh() 刷新页面操作
back() 回退到之前的页面
forward() 前进到之后的页面

在这里插入图片描述

from selenium import webdriver
import time
driver = webdriver.Firefox() #打开火狐浏览器

driver.maximize_window() #最大化浏览器

driver.get(‘http://www.baidu.com’) #打开百度
time.sleep(3) #等待三秒
driver.refresh() #刷新
driver.get(‘https://www.7k7k.com/’) #打开4399

Selenium API基础

元素的定位

在这里插入图片描述
八种定位方式的示例:

  1. driver.find_element_by_xpath(value)
  2. driver.find_element_by_css_selector(value)
  3. driver.find_element_by_id(value)
  4. driver.find_element_by_name(value)
  5. driver.find_element_by_class_name(value)
  6. driver.find_element_by_tag_name(value)
  7. driver.find_element_by_link_text(value)
  8. driver.find_element_by_partial_link_text(value)

在这里插入图片描述

from selenium import webdriver
import time
driver =webdriver.Firefox() #打开火狐浏览器
driver.maximize_window() #最大化浏览器
driver.get(‘http://www.baidu.com’) #打开百度
time.sleep(3) ‘’’
#第一种方式
id srk = driver.find_element_by_id(‘kw’) srk.send_keys(12306)
#第2种方式
name driver.find_element_by_name(‘wd’).send_keys(12306)
#第三种方式
class_name driver.find_element_by_class_name(‘s_ipt’).send_keys(12306)
#第四种方式
link_text driver.find_element_by_link_text(‘新闻’).click()
#第五种方式
partial_link_text driver.find_element_by_partial_link_text(‘新’).click()
#第六种方式
xpath driver.find_element_by_xpath(’//*[@class=“s_ipt”]’).send_keys(111)
#第七种方式
css driver.find_element_by_css_selector(’.s_ipt’).send_keys(222)
#第八种方式
tag_name driver.find_element_by_tag_name(‘input’).send_keys(12306) ‘’’

示例 58租房

在这里插入图片描述

from selenium import webdriver
import time
driver =webdriver.Chrome(r"F:\liangzai\Chrome\Application\chromedriver.exe")
driver.get(“https://bj.58.com/”)

driver.find_element_by_xpath(’//*[@id=“escNav”]/a’).click()

wh = driver.window_handles
print(wh)
driver.switch_to_window(wh[1])
driver.find_element_by_xpath(’/html/body/div[3]/div/ul/li[2]/a’).click()
wh1 = driver.window_handles
print(wh1)
driver.switch_to_window(wh1[2])
driver.find_element_by_xpath(’//[@id=“mainCon”]/div[1]/dl[4]/dd/span/span[1]/input’).send_keys(10)
driver.find_element_by_xpath(’//
[@id=“mainCon”]/div[1]/dl[4]/dd/span/span[3]/input’).send_keys(900)
driver.find_element_by_xpath(’//*[@id=“mainCon”]/div[1]/dl[4]/dd/span/em[2]’).click()

driver.find_element_by_xpath(’//*[@id=“mainCon”]/div[2]/div[2]/span[3]’).click()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值