一、鼠标操作
1.1 说明
1.2 鼠标操作----代码
# 导入模块
from time import sleep
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
driver = webdriver.Chrome() # 当前浏览器驱动对象
# 反斜杠在py中是转义字符
url = r"C:\Users\uexwcl\Desktop\黑马测试\web自动化_day01_课件+笔记+资料+代码\02_其他资料\注册A.html"
driver.get(url)
# 谷歌浏览器不支持快捷键
# 实例化并获取ActionChains类
action = ActionChains(driver)
# 定位用户名 在用户名右击鼠标 预期:粘贴
username = driver.find_element(By.CSS_SELECTOR,"#userA")
action.context_click(username).perform()
sleep(5)
# 发送用户名
username.send_keys("shmily")
# 双击 预期:选中用户名
action.double_click(username).perform()
sleep(5)
# 移动到注册按钮
action.move_to_element(driver.find_element(By.CSS_SELECTOR,"button")).perform()
sleep(5)
1.3 拖拽方法-----代码
# 导入模块
from time import sleep
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
driver = webdriver.Chrome() # 当前浏览器驱动对象
# 反斜杠在py中是转义字符
url = r"C:\Users\uexwcl\Desktop\黑马测试\web自动化_day01_课件+笔记+资料+代码\02_其他资料\drop.html"
driver.get(url)
# 实例化并获取ActionChains类
action = ActionChains(driver)
# 获取源元素
source = driver.find_element(By.CSS_SELECTOR,"#div1")
# 获取目标元素
target = driver.find_element(By.CSS_SELECTOR,"#div2")
# action.drag_and_drop(source,target).perform()
action.drag_and_drop_by_offset(source,xoffset=360,yoffset=180).perform()
sleep(5)
1.4 鼠标操作----小结
二、键盘操作
2.1 说明
模拟键盘上一些按键、组合按键的输入,如:ctrl+C、ctrl+V
Selenium中把键盘的按键都封装在Keys类中
2.2 常用的键盘操作
三、元素等待
3.1 说明
为什么要设置元素等待?
由于电脑配置或网络原因,在查找元素时,未在第一时间内被加载出来,抛出未找到元素异常。
3.2 隐式等待(全局生效)
# 导入模块
from time import sleep
from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
driver = webdriver.Chrome() # 当前浏览器驱动对象
# 隐式等待 10 s (全局)
driver.implicitly_wait(10)
# 反斜杠在py中是转义字符
url = r"C:\Users\uexwcl\Desktop\黑马测试\web自动化_day01_课件+笔记+资料+代码\02_其他资料\注册A.html"
driver.get(url)
# 给一个错误的id,不能知道,直接抛出异常说明等待失效;10s后抛出异常说明等待生效
# 正确的id是userA
driver.find_element(By.CSS_SELECTOR,"#userB").send_keys("admin")
3.3 显示等待(单个生效)
# 导入模块
from time import sleep
from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome() # 当前浏览器驱动对象
# 实例化WebDriverWait()并调用until方法
# 调用until方法返回的是 元素
username = WebDriverWait(driver,timeout=10,poll_frequency=1).until(lambda x:x.find_element(By.ID,"userA"))
# 此时username还不是元素,只有代码运行起来才是元素
username.send_keys("admin")
sleep(3)
3.4 总结
四、send_keys上传文件
注意:在Python中,转义序列以反斜杠(\)开头,并用于表示特殊字符,例如换行符(\n)、制表符(\t)等。
正确写法:send_keys("C:\\est\\est.txt")
# 导入模块
from time import sleep
from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome() # 当前浏览器驱动对象
url = r"C:\Users\uexwcl\Desktop\黑马测试\web自动化_day01_课件+笔记+资料+代码\02_其他资料\注册A.html"
driver.get(url)
# 在Python中,转义序列以反斜杠(\)开头,并用于表示特殊字符,例如换行符(\n)、制表符(\t)等
driver.find_element(By.CSS_SELECTOR,"[name='upfilea']").send_keys("C:\\est\\est.txt")
sleep(5)