对键盘的操作
注意如果要对键盘进行操作的话要先引入key包
from selenium.webdriver.common.keys import Keys
1. 控制键盘输入
上代码:
# 键盘事件
# 注意要对键盘按键使用的话要引入keys包
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("http://127.0.0.1:88/biz/user-login.html")
driver.implicitly_wait(10)
driver.find_element_by_id("account").send_keys("admin")
time.sleep(6)
driver.find_element_by_id("account").send_keys(Keys.TAB)
time.sleep(6)
driver.find_element_by_name("password").send_keys("你自己的禅道密码,嘿嘿不能把我的暴露了")
driver.find_element_by_name("password").send_keys(Keys.ENTER)
time.sleep(6)
driver.quit()
为什么这里是用禅道进行测试,而不直接在网易邮箱,淘宝之类的网站测试登录呢?
每次页面刷新定位到的输入账户地方的id和密码id都刷新,每次都变化,定位不到
为什么会刷新呢?------防止恶意登录
因为如果不刷新,定位到用户名和密码的输入框,此时如果不法分子想要破解别人的邮箱,就可以写一个自动化脚本,不停的尝试可能的密码,导致账户被盗号
2. 键盘的组合操作
直接上代码吧,一看就懂了
可以自己复制运行一下,懒得传运行视频,加油,学习就要勤快点
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.implicitly_wait(10)
driver.find_element_by_id("kw").send_keys("乃万")
driver.find_element_by_id("su").click()
time.sleep(10)
# 复制
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
time.sleep(3)
# 剪切
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
time.sleep(3)
driver.find_element_by_id("kw").send_keys("张东升")
driver.find_element_by_id("su").click()
time.sleep(3)
driver.quit()
鼠标事件
常用的:
- context_click() 右击
- double_click() 双击
- drag_and_drop() 拖动
- move_to_element() 移动
此处要引入包:
from selenium.webdriver.common.action_chains import ActionChains
1. 鼠标的点击操作
代码,运行一下就懂了
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
butten = driver.find_element_by_id("su")
# 右键定位到的百度一下的按钮
ActionChains(driver).context_click(butten).perform()
time.sleep(3)
hao123 = driver.find_element_by_link_text("hao123")
#双击界面中的hao123
ActionChains(driver).double_click(hao123).perform()
time.sleep(3)
driver.quit()
2. 鼠标的拖拽操作
这个地方没有演示,只有代码
拖拽操作一般用在测试登录的时候让拖拽完成验证之类的场景中
#定位元素的原位置
element = driver.find_element_by_id("s_btn_wr")
#定位元素要移动到的目标位置
target = driver.find_element_by_class_name("btn")
#执行元素的移动操作
ActionChains(driver).drag_and_drop(element, target).perform()