WEB自动化之键盘、鼠标操作

1.键盘相关操作

1.1导包

from selenium.webdriver.common.keys import Keys

在使用Keys时,需注意以下两点:

1.Keys必须通过ele.send_keys()使用,也就是必须要元素定位。

2.一个send_keys只能发布一次指令

1.2代码实战

实现步骤:打开百度搜索页—输入“自动化”—全选,剪切—输入“WEB”—黏贴,输入框中的内容应该是“WEB自动化”

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys  #导包

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
ele_input = driver.find_element("id", "kw")  #定位到搜索框
ele_input.send_keys("自动化")  #向搜索框中输入“自动化”
time.sleep(2)
ele_input.send_keys(Keys.CONTROL+"A")  #ctrl+a 全选
time.sleep(2)
ele_input.send_keys(Keys.CONTROL+"X")  #ctrl+x 剪切
time.sleep(2)
ele_input.send_keys("WEB")  #向搜索框中输入“WEB”
time.sleep(2)
ele_input.send_keys(Keys.CONTROL+"v")  #ctrl+v 黏贴
time.sleep(2)
ele_input.send_keys(Keys.ENTER)   #ctrl+enter 回车键搜索
time.sleep(2)
driver.quit()

2.鼠标相关操作

2.1导包

from selenium.webdriver.common.action_chains import ActionChains

2.2点击事件

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
ele_locator = driver.find_element("xpath","//a[@class='hot-title']")
ActionChains(driver).click(ele_locator).perform()  #相当于ele_locator.click()
driver.close()

2.3右键点击

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
ele_locator = driver.find_element("xpath","//a[@class='hot-title']")
ActionChains(driver).context_click(ele_locator).perform()   #右键点击content_click
driver.close()

2.4双击

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
ele_locator = driver.find_element("xpath","//a[@class='hot-title']")
ActionChains(driver).double_click(ele_locator).perform()   #双击double_click
driver.close()

2.5推拽 

注意:GUI中因为鼠标位置的原因,导致容易出问提,非GUI中比较可行

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("http://shop-xo.hctestedu.com/")
login_locator = WebDriverWait(driver,10).until(EC.visibility_of_element_located(("link text","登录")))
search_locator = WebDriverWait(driver,10).until(EC.visibility_of_element_located(("id","search-input")))
ActionChains(driver).drag_and_drop(login_locator,search_locator).perform()  #drag_and_drop拖拽,把login_locator拖到search_locator
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("http://shop-xo.hctestedu.com/")
driver.maximize_window()
login_ele = WebDriverWait(driver,10).until(EC.visibility_of_element_located(("link text","登录")))
search_ele = WebDriverWait(driver,10).until(EC.visibility_of_element_located(("id","search-input")))
print(login_ele.location,login_ele.size)  #{'x': 527, 'y': 7} {'height': 16, 'width': 24}
print(search_ele.location,search_ele.size)   #{'x': 754, 'y': 72} {'height': 30, 'width': 308}
#也可以用偏移量drag_and_drop_by_offset(被移动目标,x偏移量,y偏移量)
ActionChains(driver).drag_and_drop_by_offset(login_ele,search_ele.location["x"]-login_ele.location["x"],search_ele.location["y"]-login_ele.location["y"]).perform()

2.6鼠标悬停

ActionChains(driver).move_to_element(driver.find_element("id","XX")).perform()

2.7滑动示例

import time

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get("https://passport.ctrip.com/user/reg/home")
driver.maximize_window()
driver.find_element("link text","同意并继续").click()
time.sleep(2) #设置等待时间等待页面元素加载完成
drop_btn = driver.find_element("class name","cpt-drop-btn")
slide_ele = driver.find_element("id","slideCode")
# print(drop_btn.location,drop_btn.size,slide_ele.size)
#click_and_hold(drop_btn)点击按压住drop_btn,move_by_offset(slide_ele.size["width"],0)滑动偏移量为slide_ele的宽(X轴)和0(Y轴)
ActionChains(driver).click_and_hold(drop_btn).move_by_offset(slide_ele.size["width"],0).perform()
time.sleep(2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web自动化测试是一种利用特定软件工具来模拟和自动执行人工操作的方法。这种测试方法可以增强测试效率,减少人力成本,并且能够提供更加准确和可靠的测试结果。 在进行Web自动化测试之前,首先需要通过编写测试脚本来规定测试的步骤和预期结果。这些脚本通常使用特定的脚本语言或者测试框架来编写,可以实现模拟鼠标点击、键盘输入等操作。通过编写脚本,可以将人工操作转化为自动化测试的步骤,并且可以通过调整脚本来覆盖更多的测试场景。 当测试脚本编写完成后,可以使用特定的自动化测试工具来执行测试脚本。这些工具可以模拟用户的操作,自动打开浏览器,输入URL,点击特定链接或按钮,并检查页面的显示和行为是否符合预期。通过这种方式,可以快速、高效地执行大量的测试用例,覆盖更多的功能和场景,从而提高测试的覆盖率和准确性。 与人工操作相比,Web自动化测试具有以下优势: 1. 提高测试效率:自动化测试可以快速执行大量的测试用例,减少了人工操作的时间和成本,提高了测试的效率。 2. 提高测试准确性:自动化测试可以准确地模拟和执行人工操作,避免了人为因素对测试结果的影响,提供了更加准确和可靠的测试结果。 3. 扩展测试覆盖范围:通过自动化测试,可以覆盖更多的测试场景和功能,提高测试的覆盖率和全面性。 4. 便于重复执行:自动化测试可以重复执行相同的测试用例,确保每次测试的一致性和可靠性。 然而,Web自动化测试也存在一些局限性。例如,对于一些动态变化的Web页面或者需要复杂交互的功能,自动化测试可能无法准确地模拟人工操作,需要手动操作或者进行人工验证。因此,自动化测试应用于Web测试时,需要根据具体的测试需求和场景进行综合考虑,确保测试的准确性和覆盖率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值