python自动化7 键盘事件
发布日期:2023-05-26 14:14:30 浏览次数:3 分类:技术文章

本文共 4435 字,大约阅读时间需要 14 分钟。

在实际的web测试工作中,需要配合键盘按键来操作,webdriver的keys()类提供键盘上所有按键的操作,还可以模拟组合键Ctrl a,Ctrl+c/v等。

ActionChains可以支持两种模式:
1.self.driver.find_element(By.XPATH,xpath_path).sendkeys(Keys.CONTROL,‘v’)
2.ActionChains(driver).click(element).pause(1).key_down(Keys.CONTROL).send_keys(‘v’).key_up(Keys.CONTROL).perform()
在selenium中 修饰键使用key_down、key_up(ctrl、shfit、alt)

from selenium import webdriverfrom config_utils import config_ufrom log_utils import LogUtilsfrom selenium.webdriver.firefox.service import Servicefrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.common.keys import Keyslog_path = config_u.get_log_pathlog_utils = LogUtils(log_path)class WebDriver:    def __init__(self,driver_path=config_u.get_driver_path):        path = Service(driver_path)        self.driver = webdriver.Firefox(service=path)        self.mouse = ActionChains(self.driver)    def get_urls(self,urls):        try:            self.driver.get(urls)            log_utils.print_file_log('info', '窗口打开成功')        except Exception as e:            log_utils.print_file_log('error','url错误:'+str(e))    def quit_browser(self):        self.driver.quit()    def browser_back(self):        self.browser_back()    def find_element_xpath(self,xpath_path,key_word):        self.driver.find_element(By.XPATH,xpath_path).send_keys(key_word)    def find_element_css(self,css_path,key_word):        self.driver.find_element(By.CSS_SELECTOR,css_path).send_keys(key_word)    def element_xpath_click(self,xpath_path):        #按键点击        self.driver.find_element(By.XPATH,xpath_path).click()    def element_xpath_submit(self,xpath_path):        #表单提交        self.driver.find_element(By.XPATH, xpath_path).submit()    def element_xpath_get_text(self,xpath_path):        #获取标签文本        return self.driver.find_element(By.XPATH,xpath_path).text    def element_xpath_get_attribute(self,xpath_path,class_value):        # 获取标签属性值        return self.driver.find_element(By.XPATH, xpath_path).get_attribute(class_value)    def element_xpath_is_display(self,xpath_path):        #组件对象是否可见        return self.driver.find_element(By.XPATH, xpath_path).is_displayed()    def element_xpath_is_enable(self,xpath_path):        #组件对象是否禁用        return self.driver.find_element(By.XPATH, xpath_path).is_enabled()    def element_xpath_is_select(self,xpath_path):        #组件对象是否禁用        return self.driver.find_element(By.XPATH, xpath_path).is_selected()    def element_xpath_tag_name(self,xpath_path):        #获取对象标签名        return self.driver.find_element(By.XPATH, xpath_path).tag_name    def element_xpath_location(self,xpath_path):        #获取元素坐标        return self.driver.find_element(By.XPATH, xpath_path).location    def element_xpath_screenshot(self,xpath_path):        #元素截图        self.driver.find_element(By.XPATH, xpath_path).screenshot()    #鼠标相关操作    def element_xpath_right_click(self,xpath_path):        #鼠标右击        element=self.driver.find_element(By.XPATH,xpath_path)        self.mouse.context_click(element).perform()    def element_xpath_move_element(self,xpath_path):        #鼠标浮在元素上        element=self.driver.find_element(By.XPATH,xpath_path)        self.mouse.move_to_element(element).perform()    def element_xpath_double_click(self,xpath_path):        #双击        element=self.driver.find_element(By.XPATH,xpath_path)        self.mouse.double_click(element).perform()    def element_xpath_drag_drop(self,xpath_path):        #拖动        element=self.driver.find_element(By.XPATH,xpath_path)        self.mouse.drag_and_drop(element).perform()    def element_xpath_click_hold(self,xpath_path,sec):        #按下鼠标左键在一个元素上 sec 长按时间        element=self.driver.find_element(By.XPATH,xpath_path)        self.mouse.click_and_hold(element).pause(sec).release().perform()    #元素上键盘相关操作    def element_xpath_keys_tab(self,xpath_path):        #tab键切换        self.driver.find_element(By.XPATH,xpath_path).send_keys(Keys.TAB)    def element_xpath_keys_space(self,xpath_path):        #空格键        self.driver.find_element(By.XPATH,xpath_path).send_keys(Keys.SPACE)    #网页上键盘操作    def element_xpath_keys_tab_web(self):        #切换        self.mouse.send_keys(Keys.TAB).perform()    def a(self,xpath_path):        #ctrl +v        self.driver.find_element(By.XPATH,xpath_path).sendkeys(Keys.CONTROL,'v')if __name__ == '__main__':    urls = 'http://127.0.0.1/zentao/user-login.html'    driver = WebDriver()    driver.get_urls(urls)

转载地址:https://blog.csdn.net/xiaoqiukuzi/article/details/129152611 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python自动化8 等待处理
下一篇:python自动化6 鼠标事件

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月09日 23时27分20秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

android pm.java,java – AM / PM的Android DateFormat因设备而异 2019-04-21
oracle存储过程调用sql文件,oracle - 在SQL Developer中运行存储过程? 2019-04-21
oracle同时报604和12507,V$SES_OPTIMIZER_ENV 查不到刚修改的隐含参数, 2019-04-21
zblog的php更换域名,zblogphp更换域名后,原zblog里使用了固定域名,登录不进去怎么办... 2019-04-21
oracle dnfs 配置,Source of Oracle参数解析(dnfs_batch_size) - django-\/\/ i K | 2019-04-21
oracle所需的环境,转:面对一个全新的oracle环境,首先应该了解什么? 2019-04-21
linux 小数四则运行,shell四则运算(整数及浮点数)的方法介绍 2019-04-21
linux系统分区后进入紧急模式,Linux系统的救援模式应用详解 2019-04-21
linux配置匿名ftp服务器,在Linux环境中使用vsftpd搭建ftp实现匿名上传详细配置 2019-04-21
linux创建硬盘分区lvm,LVM创建及分区调整、更换LVM硬盘 2019-04-21
FreeBSD可以安装Linux软件吗,在Linux服务器上面通过网络安装FreeBSD 2019-04-21
.net core linux 桌面应用,C# dotnet core + AvaloniaUI 开发桌面软件,hello world 2019-04-21
linux tcp 113错误,linux系统报tcp_mark_head_lost错误的处理方法 2019-04-21
南昌工程学院c语言答案,南昌工程学院C语言程序设计基础课件第3讲运算符和表达式... 2019-04-21
python学画画_python学画画(下) 2019-04-21
云栖社区 mysql_【直播结束,已更新回放】PG、MySQL到底哪个好?云栖说这次请来五位专家撕了一下-阿里云开发者社区... 2019-04-21
老男孩mysql 百度云_英语语录:除了你,没人能掌控你的幸福 2019-04-21
mysql驱动多次执行问题_Laravel5.2队列驱动expire参数设置带来的重复执行问题 数据库驱动... 2019-04-21
mysql获取刚新增的数据库_如何取得刚插入数据库的数据的id mysql 2019-04-21
python将10到1递减_(Python)如何将3个递减列表合并成一个递减列表? 2019-04-21