做自动化测试脚本的时候,我们通常会有如下的步骤:
通过某些方式定位到我们要执行的对象、目标(Target)
对这个对象进行什么操作(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获取当前的url地址进行断言
title用来获取当前页的标题
python
#导包、创建浏览器对象、获取一下百度首页
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
#先在百度首页页面获取一下url,并打印出来
# url1 = driver.current_url
# print(url1)
#先在百度首页页面获取一下title,并打印出来
title = driver.title
print(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("跳转页面失败")
#点完新闻链接之后,查看跳转后的页面的title
title1 = driver.title
print(title1)
if title1 == "百度新闻——海量中文资讯平台":
print("跳转页面正确")
else:
print("跳转页面失败")
time.sleep(3)
driver.quit()
text获取页面的文本
get_attribute(name):获取属性值,文本框中的值使用value属性名。
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()