阿壮博客阿壮博客阿壮博客

鼠标连点测试 怎么测试鼠标按键连点问题

鼠标表示鼠标事件。鼠标操作是通过使用低级界面执行的,该界面允许我们向Web浏览器提供虚拟化的设备输入操作。

鼠标动作操作方法详细介绍如下:

click_and_hold

移动到该元素,然后在给定元素的中间单击(不释放)

import timefrom selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainswith webdriver.Chrome() as driver: driver.get('https://www.baidu.com/') time.sleep(2) setting = driver.find_element_by_xpath('//*[@id="s-usersetting-top" and text()="设置"]') ActionChains(driver).click_and_hold(setting).perform() time.sleep(5) context_click

首先将鼠标移动到元素的位置,然后在给定元素上执行上下文单击(右键单击)

import timefrom selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainswith webdriver.Chrome() as driver: driver.get('https://www.runoob.com/python/python-tutorial.html') time.sleep(2) setting = driver.find_element_by_xpath('//*[@rel="noopener noreferrer" and text()="Python 3.X 版本的教程"]') ActionChains(driver).context_click(setting).perform() time.sleep(5) double_click

移动到该元素,并在给定元素的中间双击

import timefrom selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainswith webdriver.Chrome() as driver: driver.get('https://www.runoob.com/python/python-tutorial.html') time.sleep(2) setting = driver.find_element_by_xpath('//*[@rel="noopener noreferrer" and text()="Python 3.X 版本的教程"]') ActionChains(driver).double_click(setting).perform() time.sleep(5) move_to_element

将鼠标移到元素的中间。执行此操作时,该元素也会滚动到视图中,再进行定位操作

import timefrom selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainswith webdriver.Chrome() as driver: driver.get('https://www.baidu.com/') setting = driver.find_element_by_xpath('//*[@id="s-usersetting-top" and @name="tj_settingicon"]') ActionChains(driver).move_to_element(setting).perform() driver.find_element_by_xpath('//*[text()="搜索设置"]').click() time.sleep(5) move_by_offset

将鼠标从其当前位置(或0,0)移动给定的偏移量。如果坐标在视图窗口之外,则鼠标将最终在浏览器窗口之外

import timefrom selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainswith webdriver.Chrome() as driver: driver.get('https://www.baidu.com/') setting = driver.find_element_by_xpath('//*[@id="s-usersetting-top" and @name="tj_settingicon"]') ActionChains(driver).move_to_element(setting).perform() time.sleep(5) xOffset = 1 yOffset = 1 webdriver.ActionChains(driver).move_by_offset(xOffset, yOffset).perform() driver.find_element_by_xpath('//*[text()="搜索设置"]').click() time.sleep(5)

如我们把xOffset和yOffset的值稍微设置大一点,设置值为 100,就会报不在范围的错误:Message: move target out of bounds

/Users/lifeng/python-virtualenv/venv/bin/python3 /Users/lifeng/python-projects/test-python/selenium_script.pyTraceback (most recent call last): File "/Users/lifeng/python-virtualenv/venv/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace)selenium.common.exceptions.MoveTargetOutOfBoundsException: Message: move target out of bounds (Session info: chrome=89.0.4389.82) drag_and_drop

首先在源元素上单击并按住,然后移动到目标元素的位置,然后释放鼠标

import timefrom selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainswith webdriver.Chrome() as driver: driver.get('https://www.baidu.com/') setting = driver.find_element_by_xpath('//*[@id="s-usersetting-top" and @name="tj_settingicon"]') setting_one = driver.find_element_by_xpath('//*[@id="s-usersetting-top" and @name="tj_settingicon"]') ActionChains(driver).drag_and_drop(setting, setting_one).perform() driver.find_element_by_xpath('//*[text()="搜索设置"]').click() time.sleep(5)

drag_and_drop中要传两个参数,传入第一个是源元素setting后按住,再点击传入的目标元素setting_one后,然后再释放掉setting_one

drag_and_drop_by_offset

首先在源元素上单击并按住,移至给定的偏移量,然后释放鼠标。

可针对验证码滑动解锁操作

import timefrom selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.common.exceptions import UnexpectedalertPresentExceptionwith webdriver.Chrome() as driver: driver.get('https://mail.qq.com/') time.sleep(2) form_ = driver.find_element_by_xpath('//*[@id="login_frame"]') driver.switch_to.frame(form_) driver.find_element_by_xpath('//*[@id="u"]').click() driver.find_element_by_xpath('//*[@id="u"]').send_keys('16688888888') driver.find_element_by_xpath('//*[@id="p"]').click() driver.find_element_by_xpath('//*[@id="p"]').send_keys('12345678999') driver.find_element_by_xpath('//*[@id="login_button"]').click() time.sleep(2) code_iframe = driver.find_element_by_xpath('//*[@id="tcaptcha_iframe"]') driver.switch_to.frame(code_iframe) code_offset = driver.find_element_by_xpath('//*[@id="tcaptcha_drag_button"]') ActionChains(driver).drag_and_drop_by_offset(code_offset, 179, 0).perform() time.sleep(10)

官方文档中的介绍是可以这样操作:

from selenium import webdriverdriver = webdriver.Chrome()driver.get("https://crossbrowsertesting.github.io/drag-and-drop")sourceEle = driver.find_element(By.ID, "draggable")targetEle = driver.find_element(By.ID, "droppable")targetEleXOffset = targetEle.location.get("x")targetEleYOffset = targetEle.location.get("y")webdriver.ActionChains(driver).drag_and_drop_by_offset(sourceEle, targetEleXOffset, targetEleYOffset).perform()

但是实操使用了location.get()的方法,运行后报错了:

/Users/lifeng/python-virtualenv/venv/bin/python3 /Users/lifeng/python-projects/test-python/selenium_script.pyTraceback (most recent call last): File "/Users/lifeng/python-projects/test-python/selenium_script.py", line 29, in xOffset = code_offset.location(170)TypeError: 'dict' object is not callableProcess finished with exit code 1 release

将释放按下的鼠标左键

import timefrom selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainswithwebdriver.Chrome()asdriver: driver.get('https://www.runoob.com/python/python-tutorial.html') text_python = driver.find_element_by_xpath('//*[@rel="noopener noreferrer" and text()="Python 3.X 版本的教程"]') target_python = driver.find_element_by_xpath('//*[@rel="noopener noreferrer" and text()="Python 3.X 版本的教程"]') webdriver.ActionChains(driver).click_and_hold(text_python).move_to_element(target_python).perform() webdriver.ActionChains(driver).release().perform() time.sleep(1)

以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你

1.文章《鼠标连点测试 怎么测试鼠标按键连点问题》援引自互联网,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删举报等反馈请点击此处

2.文章《鼠标连点测试 怎么测试鼠标按键连点问题》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://100248.com/baike/299175.html

相关推荐

清明节假期交通安全 清明节交通安全手抄报

清明节假期交通安全文章你走,他走,大家走,安全意识心中有;你让,他让,大家让,安全行路有保障。下面给大家分享一些关于清明节假期交通安全文章,

幼儿游玩交通安全 幼儿交通安全儿歌

幼儿游玩交通安全知识行走时要专心,注意周围情况,不要东张西望、边走边看书报或做其他事情,保障交通安全。下面给大家分享一些关于幼儿游玩交通安全

行车安全知识总结 驾驶员行车安全培训总结

2023行车安全知识总结同学们上学和放学的时候,正是一天中道路交通最拥挤的时候,人多车辆多,必须十分注意交通安全。下面给大家分享一些关于20

节假日游玩交通安全 节假日交通安全宣传标语

节假日游玩交通安全知识交通安全系万家,违法驾驶危害大。遵规守法谨慎行,家庭温馨需要它!下面给大家分享一些关于节假日游玩交通安全知识,希望能够

2023车辆行驶安全知识 游戏安全知识答题2023

2023车辆行驶安全知识分享交通安全很重要,遵规驾驶有速度,珍惜生命是成熟的思考表现,出入平安是最佳的日常。下面给大家分享一些关于2023车

五一交通安全提示

五一交通安全提示模板忠诚地守卫交通安全,一天又一天,执著地追逐幸福,一年又一年,交通安全知识平安大家。下面给大家分享一些关于五一交通安全提示

学生交通安全教育 学生交通安全教育心得体会

最新学生交通安全教育在道路上行走,要走人行道,没有人行道的道路,要靠路边行走,这是能最大程度保证交通安全的做法。下面给大家分享一些关于最新学

三月出行交通安全 交通安全出行歌

三月出行交通安全提醒要让爱车跑,车况要良好;开车别太快,系好安全带;出门要提前,堵车心不烦,交通安全要记牢。下面给大家分享一些关于三月出行交