Web自动化测试(2)

一、鼠标操作

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值