自动化测试步骤

一、页面元素定位及操作

什么是页面元素:在浏览上能看到的所有要素,如图片、文本框、按钮、下拉列表、视频等。

自动化是干嘛的?代码控制浏览器上的元素,让这些元素“动”起来(按照脚本设计逻辑在执行)

自动化测试的主要步骤:

1、通过某些方式定位到我们要执行的对象、目标(target)

2、对这个对象进行什么操作(command)

3、通过操作对定位到的元素赋值(value)

4、添加断言操作

webdriver提供的定位元素方式有:

  • id属性定位—>find_element_by_id(“id属性值”)

  • name属性定位—>find_element_by_name(“name属性值”)

  • class name属性定位—>find_element_by_class_name(“id值”)

  • link text:—>find_element_by_link_text(“链接的显示文本”)

  • tag name:—>find_element_by_tag_name(“标签名”)

  • partial link text:—>find_element_by_partial_link_text(“部分链接的显示文本”)

  • xpath:find_element_by_xpath(“xpath”)

  • css:find_element_by_css_selector(“css”)

测试使用id属性定位

"""
需求:百度文本框输入selenium,点击百度一下
1、百度文本框77
2、百度一下
使用ID属性定位:
1、确定要操作的对象
2、获取id属性(kw/su)
3、其他操作
"""
#导包、创建浏览器对象,获取一下url地址
from selenium import webdriver
#driver:就是一个普通的变量,dr也行
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
#通过ID来定位文本框和百度一下
driver.find_element_by_id("kw").send_keys("selenium")
time.sleep(2)
driver.find_element_by_id("su").click()
time.sleep(2)
#退出浏览器对象
driver.quit()

使用id属性和name,class属性定位方法一样,下面讲一下使用link text和partial link text定位

元素定位

#导包、创建浏览器对象,获取一下url地址
from selenium import webdriver
#driver:就是一个普通的变量,dr也行
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
#通过元素定位文本框和百度一下
driver.find_element_by_link_text("新闻").click()
time.sleep(5)
driver.find_element_by_partial_link_text("病毒溯源全球").click()
#退出浏览器对象
driver.quit()

link text需要完整的链接标题,而partial link text则需要部分就可以定位。

绝对路径定位

/:根节点

//:相对节点

百度文本框对应的绝对路径:

父子节点使用/链接(在树状结构上有明显的所属关系)

同标签名的节点是兄弟节点,使用[ ]排名次,老大排第一位[1],老二加[2],(标签名一样),老大的不用写也行

driver.find_element_by_xpath("/html/body/div/div/div[3]/div/div/form/span/input")

绝对路径太麻烦了,一般不推荐使用

利用元素属性定位

find_element_by_xpath(“//input[@id='kw']”)

层级与属性结合

find_element_by_xpath(“//from[@id='form']/span[1]/input")

逻辑运算符

find_element_by_xpath(“//input[@id='kw' and@class=‘su']")

css定位

.表示类选择器

driver.find_element_by_css_selector(".s_ipt").send_keys("selenium")
driver.find_element_by_id("su").click()

#表示id选择器

driver.find_element_by_css_selector("#su").click()

定位到元素之后,我们能做些什么事情呢?

clear():清除文本 -----用于输错之后的清除功能

send_keys(value):模拟按键输入,除了能够发送字母外,还可以发送快捷键

click():单击元素,例如按钮,超链接、单选框、复选框操作

current_url:返回当前页面的url地址

title:返回当前页面的title

Text:获取页面(提示框、警告框)显示的文本,或者是一些页面元素上的显示文本

get_attribute(name):获取属性值,文本框中的值使用value属性名

is_displayed():设置该元素是否用户可见,结果就是真和假

is_enabled():判断是否可用

is_selected:判断是否选中,使用复选框或单选框的判断

driver.close():只关掉一个窗口,而且关掉的是前一个

driver.quit():关闭浏览器,不管页面有几个窗口,都关掉

句柄(handler):每一个页面都一个值,对一个页面来说是唯一,是页面的一个标识

driver是要绑定句柄的,你的driver只能控制你绑定句柄的这个页面

获取当前窗口的句柄:driver.current_window_handle

1、打开淘宝网

2、点击聚划算,进入聚划算页面

3、选择“女装”,进入女装页面

4、返回到聚划算页面

#导包、创建浏览器对象,获取一下url地址
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.taobao.com")
#通过ID来定位文本框和百度一下
driver.find_element_by_partial_link_text("聚划算").click()
time.sleep(2)
driver.find_element_by_partial_link_text("女装").click()
time.sleep(2)
driver.back()

这里的“女装”就是淘宝页面的,不是从聚划算里面的女装

如果就是想点聚划算里面的女装怎么办?

将聚划算里面的句柄绑定给driver

1、拿到聚划算的句柄

driver.window_handle 可以拿到浏览器中打开的窗口的所有句柄

2、将句柄绑定给driver

#获取所有打开窗口的句柄
handles=driver.window_handle
#将聚划算的句柄绑定给driver
driver.switch_to_window(handlers[1])
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值