4.元素操作
4.1.为社么要学习操作元素方法?
- 需要让脚本模拟用户给指定元素输入值
- 需要让脚本模拟人为删除元素的内容
- 需要让脚本模拟点击操作
4.2元素常用操作方法
- click() 单击元素
- send_keys() 模拟输入
- clear() 清除文本
4.3.案例
打开百度页面 输入hello 间隔三秒,修改为hello world 间隔三秒,点击确定 间隔三秒,关闭浏览器
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('hello ')
sleep(2)
driver.find_element_by_id('kw').clear()
driver.find_element_by_id('kw').send_keys('hello world')
sleep(3)
driver.find_element_by_id('su').click()
sleep(3)
driver.quit()
5.操作浏览器
5.1操作浏览器常用方法
方法 | 说明 |
---|
1.maximize_window() | 最大化浏览器窗口–>模拟浏览器最大化窗口 | 2. set_window_size(width,height) | 设置浏览器窗口大小–>设置浏览器宽,高(像素点) | 3.set_window_position(x,y) | 设置浏览器位置–>设置浏览器位置 | 4.back() | 后退–>模拟浏览器后退按钮 | 5.forword() | 前进–>模拟浏览器前进按钮 | 6.refresh() | 刷新–>模拟浏览器F5刷新 | 7. close() | 关闭当前窗口–>模拟点击浏览器关闭按钮 | 8.quit() | 关闭浏览器驱动对象–>关闭所有程序启动的窗口 | 9.title | 获取页面title | 10.current_url | 获取当前页面url |
5.2案例(1,2,3,4,5)
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.maximize_window()
sleep(2)
driver.set_window_size(300,200)
sleep(2)
driver.set_window_position(320,150)
sleep(2)
driver.maximize_window()
driver.find_element_by_link_text('地图').click()
sleep(10)
driver.back()
sleep(10)
driver.forward()
sleep(3)
driver.quit()
5.3案例(6.7.8.9.10)
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('hello')
sleep(4)
driver.refresh()
title=driver.title
print(title)
current_url=driver.current_url
print(current_url)
driver.find_element_by_link_text('地图').click()
sleep(10)
driver.close()
sleep(10)
driver.quit()
6.获取元素信息
6.1为什么要学习获取元素信息的方法
- 如何获取元素的文本?
- 如何获取元素属性值?
- 如何让程序判断元素是否为可见状态?
6.2获取元素信息的常用方法
方法 | 说明 |
---|
size | 返回元素大小 | *****text | 获取元素的文本 | get_attribute(“xxx”) | 获取属性值,传递的参数为元素的属性名 | is_displayed() | 判断元素是否可见 | is_enabled() | 判断元素是否可用 | is_selected() | 判断元素是否选中,用来检查复选框或单选按钮是否被选中 |
6.3.案例
需求:http://www.baidu.com,完成以下操作 获取输入框大小 获取页面第一个超链接的文本内容 获取页面上第一个超链接的地址 判断页面的span标签是否可见 判断页面中百度以下按钮是否可见 X :判断页面中复选框是否为选中状态
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
size=driver.find_element_by_id('kw').size
print('获取输入框大小为',size)
text=driver.find_element_by_css_selector('a').text
print('页面第一个超链接的文本内容为',text)
attribute=driver.find_element_by_css_selector('a').get_attribute('href')
print('页面上第一个超链接的地址为',attribute)
display=driver.find_element_by_css_selector('span').is_displayed()
print('页面的span标签是否可见',display)
enable=driver.find_element_by_id('su').is_enabled()
print('页面中百度以下按钮是否可见',enable)
sleep(10)
driver.quit()
输出: 获取输入框大小为 {‘height’: 44, ‘width’: 548} 页面第一个超链接的文本内容为 页面上第一个超链接的地址为 https://www.baidu.com/ 页面的span标签是否可见 True 页面中百度以下按钮是否可见 True
7.鼠标和键盘操作
7.1鼠标操作:点击,右击,双击,悬停,拖拽。
7.2为什么要用鼠标操作?
web产品中存在丰富的鼠标交互方式,作为一个web自动化测试框架,需要应对这些鼠标操作的应用场景
7.3鼠标常见操作方法
selenium中将鼠标操作的方法封装在ActionChains中 需实例化对象:action=ActionChains(driver)
方法 | 说明 |
---|
1.context_click(element) | 右击---->模拟鼠标右键点击效果 | 2.double_click(element) | 双击 | 3.drag_and_drop(source,target) | 拖动 | 4.move_to_eleement(eleement) | 悬停 | 5.perform() | 执行—>此方法用来执行以上所有鼠标操作,不然不能够实现 |
7.4.案例 1.2.4.5
from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
action=ActionChains(driver)
id=driver.find_element_by_id('kw')
action.context_click(id).perform()
sleep(10)
driver.find_element_by_id('kw').send_keys("hello")
action.double_click(id).perform()
sleep(10)
action.move_to_element(driver.find_element_by_id('su')).perform()
sleep(10)
driver.quit()
注意:定位文本框 ,右击 —>粘贴内容只能用于firefox,ie浏览器,不能用于chrome浏览器
from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains
driver=webdriver.Firefox()
driver.get('http://www.baidu.com')
action=ActionChains(driver)
id=driver.find_element_by_id('kw')
action.context_click(id).perform()
id.send_keys('p')
sleep(10)
sleep(10)
driver.quit()
7.5案例 3拖拽
7.6键盘操作:‘ selenium中将键盘的按键都封装在keys中 导包:from selenium.webdriver.common.keys import keys 7.7常见的键盘操作
方法 | 说明 |
---|
1.send_keys(keys.BACK_SPACE) | 删除键 backspace | 2.send_keys(keys.SPACE) | 空格键 space | 3.send_keys(keys.TAB) | 制表键tab | 4.send_keys(keys.ESCAPE) | 回退键esc | 5.send_keys(keys.ENTER) | enter | 6.send_keys(keys.CONTROL,‘a’) | 全选(ctrl+a) | 7.send_keys(keys.CONTROL,‘c’) | 复制(ctrl+c) |
7.8案例
打开百度页面 输入12345,暂停3m,删除5; 全选输入内容,暂停3m; 复制输入内容,暂停3m; 清空,暂停3m,粘贴至输入框
|