Selenium-元素操作、浏览器操作方法
1.元素操作
1.1 为什么要学习操作元素的方法?
1、需要让脚本模拟用户给指定元素输入值
2、需要让脚本模拟人为删除元素的内容
3、需要让脚本模拟点击操作
1.2 元素常用操作方法
1、click() 单击元素
2、send_keys(value) 模拟输入
3、clear() 清除文本
1.3 案例
“”“
需求:
1、通过脚本执行输入用户名:admin;密码:123456;电话号码:18611111111;电子邮件:123@qq.com
2、间隔3秒,修改电话号码为:18600000000
3、间隔3秒,点击‘注册’按钮
4、间隔3秒,关闭浏览器
5、元素定位方法不限
”“”
# 导包
from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象
driver = webdriver.Firefox()
# 打开url
url = r"D:\web自动化素材\课堂素材\注册A.html"
driver.get(url)
# 输入 admin
driver.find_element_by_css_selector("#userA").send_keys("admin")
# 输入 密码 123456
driver.find_element_by_css_selector("#passwordA").send_keys("123456")
# 输入 电话 18611112222
driver.find_element_by_css_selector(".telA").send_keys("18611112222")
# 输入 邮箱 123@qq.com
driver.find_element_by_css_selector("#emailA").send_keys("123@qq.com")
# 暂停2秒
sleep(2)
# 修改电话号码 18622223333 -->清空操作
# driver.find_element_by_css_selector(".telA").clear()
driver.find_element_by_css_selector(".telA").send_keys("18622223333")
# 暂停2秒
sleep(2)
# 点击注册按钮
driver.find_element_by_css_selector("button").click()
# 暂停 2
sleep(2)
# 关闭驱动对象
driver.quit()
2、浏览器操作
脚本启动浏览器窗口大小默认是不是全屏?
如何刷新页面?
2.1 操作浏览器常用方法
1、maxmize_window() 最大化浏览器窗口 --> 模拟浏览器最大化按钮
2、set_window_size(width, height) 设置浏览器窗口大小 --> 设置浏览器宽、高(像素点)
3、set_window_position(x, y) 设置浏览器窗口位置 --> 设置浏览器位置
4、back() 后退 --> 模拟浏览器后退按钮
5、forward() 前进 --> 模拟浏览器前进按钮
6、refresh() 刷新 --> 模拟浏览器F5刷新
7、close() 关闭当前窗口 --> 模拟点击浏览器关闭按钮
8、quit() 关闭浏览器驱动对象 --> 关闭所有程序启动的窗口
9、title 获取页面title
10、current_url 获取当前页面URL
2.2 示例代码
# 导包
from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象
driver = webdriver.Firefox()
# 打开url
url = r"D:\web自动化素材\课堂素材\注册A.html"
driver.get(url)
# 将浏览器 最大化
driver.maximize_window()
# 暂停2秒
sleep(2)
# 设置固定大小 300,200
driver.set_window_size(300, 200)
# 暂停2秒
sleep(2)
# 移动浏览器窗口位置 x:320,y:150
driver.set_window_position(320, 150)
# 暂停2秒
sleep(2)
# 最大化
driver.maximize_window()
# 点击 访问新浪网站 注意:要演示后退功能,必须先执行打开新的网站
driver.find_element_by_partial_link_text("访问").click()
# 暂停2秒
sleep(2)
# 执行后退 ---> 注册A.html
driver.back()
# 暂停2秒
sleep(2)
# 执行前进 -->新浪 注意:前进必须放到后退操后执行
driver.forward()
# 暂停 2
sleep(2)
# 关闭驱动对象
driver.quit()
3、获取元素信息
3.1 为什么要学习获取元素信息的方法?
1、如何获取元素的文本?
2、如何获取元素的属性值?
3、如何让程序判断元素是否为可见状态?
3.2 获取元素信息的常用方法
1. size 返回元素大小
2. text 获取元素的文本
3. get_attribute("xxx") 获取属性值,传递的参数为元素的属性名
4. is_displayed() 判断元素是否可见
5. is_enabled() 判断元素是否可用
6. is_selected() 判断元素是否选中,用来检查复选框或单选按钮是否被选中
提示:1. size、text:为属性,调用时无括号;如:xxx.size
3.3 案例
# 导包
from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象
driver = webdriver.Firefox()
# 将浏览器 最大化
# driver.maximize_window()
# 打开url
url = r"D:\web自动化素材\课堂素材\注册实例.html"
driver.get(url)
# 获取用户名文本框大小
size = driver.find_element_by_css_selector("#user").size
print("用户名大小为:", size)
# 获取页面上第一个超文本连接内容
text = driver.find_element_by_css_selector("a").text
print("页面中第一个a标签为:", text)
# 获取页面上第一个超文本链接地址 get_attribute("href")
att = driver.find_element_by_css_selector("a").get_attribute("href")
print("页面中第一个a标签为href属性值为:", att)
# 判断 span元素是否可见
display = driver.find_element_by_css_selector("span").is_displayed()
print("span元素是否可见:", display)
# 判断 取消按钮是否可用
enabled = driver.find_element_by_css_selector("#cancel").is_enabled()
print("取消按钮是否可用:", enabled)
# 选中旅游按钮
driver.find_element_by_css_selector("#ly").click()
# 判断旅游是否被选中
selected = driver.find_element_by_css_selector("#ly").is_selected()
print("旅游是否被选中:", selected)
# 暂停 2
sleep(2)
# 关闭驱动对象
driver.quit()