苍老师自动化测试小课堂 | WebDriver API之常见元素
知乎首发地址:https://zhuanlan.zhihu.com/p/121829929
做自动化测试脚本的时候,我们通常会有如下的步骤:
对这个对象进行什么操作(command)
通过操作对定位到的元素赋值(value)
添加断言操作
前面讲过了如何定位到页面的元素,下面我们再来研究下如何对定位到的元素进行操作吧。下面是selenium webdriver提供的常见的元素操作方法:
clear(): 清除文本。
send_keys (value): 模拟按键输入,除了能够发送字母外,还可以发送快捷键。
click(): 单击元素。例如按钮、超链接、单选框、复选框操作。
#导包、创建浏览器对象、打开百度首页
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
#send_keys:模拟键盘录入,发送数据到文本框
driver.find_element_by_css_selector(".s_ipt").send_keys("selenisum")
time.sleep(3)
#需要清除百度文本框中的文本使用clear方法
driver.find_element_by_css_selector(".s_ipt").clear()
driver.find_element_by_css_selector(".s_ipt").send_keys("selenium")
#使用click方法模拟元素的点击操作
driver.find_element_by_css_selector("#su").click()
time.sleep(3)
driver.quit()
current_url:返回当前(driver浏览器对象所能控制的页面)页面的url地址,可以用于断言
title: 返回当前(driver浏览器对象所能控制的页面)页面的title,可以用于断言
#导包、创建浏览器对象、获取一下百度首页fromseleniumimportwebdriverimporttimedriver=webdriver.Chrome()driver.get("https://www.baidu.com")#先在百度首页页面获取一下url,并打印出来# url1 = driver.current_url# print(url1)#先在百度首页页面获取一下title,并打印出来title=driver.titleprint(title)#点击百度首页上的新闻按钮,要获取跳转后页面的url地址,并且判断是否符合与其结果driver.find_element_by_link_text("新闻").click()# #获取新闻页面的url# url = driver.current_url# #http://news.baidu.com/# print(url)# #加断言# if url == "http://news.baidu.com/":# print("跳转页面正确")# else:# print("跳转页面失败")#点完新闻链接之后,查看跳转后的页面的titletitle1=driver.titleprint(title1)iftitle1=="百度新闻——海量中文资讯平台":print("跳转页面正确")else:print("跳转页面失败")time.sleep(3)driver.quit()
text: 获取页面(提示框、警告框)显示的文本
#导包、创建浏览器对象、获取百度首页
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
#获取二维码下的显示文本
# wenben = driver.find_element_by_xpath("//*[@id='qrcode']/div/div[2]/p[2]").text
wenben = driver.find_element_by_xpath('//*[@id="bottom_layer"]/div[1]').text
print(wenben)
driver.find_element_by_id("kw").send_keys("selenium")
driver.quit()
get_attribute(name): 获得属性值,文本框中的值使用value属性名。
#导包、创建浏览器对象、打开百度首页
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
#获取百度文本框的name属性
value1 = driver.find_element_by_id("kw").get_attribute("value")
value2 = driver.find_element_by_id("su").get_attribute("class")
print(value1)
print(value2)
#退出浏览器对象
driver.quit()
is_displayed(): 设置该元素是否用户可见,结果就是真和假。
is_enabled():判断是否可用
is_selected:判断是否选中,一般用复选框或者单选框的判断
#导包、创建浏览器对象、打开百度首页
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
#判断百度一下按钮是否显示出来了
# if driver.find_element_by_id("su").is_displayed():
if driver.find_element_by_id("su").is_enabled():#判断是否可用
print("正常显示了百度一下")
else:
print("显示失败")
#退出浏览器对象
driver.quit()
欢迎关注作者,如果觉得写的还不错,就给点个赞同、喜欢、收藏(后续持续更新)。
【全文手打 如需转载 请标注此出处】