首页 > 其他分享 >WEB自动化-键盘操作

WEB自动化-键盘操作

时间:2023-07-11 11:55:25浏览次数:43  
标签:WEB webdriver el selenium driver 键盘 自动化 import wait

实际工作中,按照用户操作习惯,进行的是模拟键盘和鼠标操作WEB。

首先,导入键盘操作需要的服务

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2023/6/26 17:32
# @File    : P01-test-selenium.py
# @Software: PyCharm
from selenium.webdriver import Keys


def P01():
    import time

    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.wait import WebDriverWait   # 导入等待机制显示等待需要的包
    from selenium import webdriver  # 导入selenium的webdriver包
    from selenium.webdriver.common.keys import Keys # 导入键盘服务包
    from selenium.webdriver import ActionChains # 导入事务包
    from selenium.webdriver.common.actions.action_builder import ActionBuilder

    driver = webdriver.Edge()   # 设置浏览器
    # driver.implicitly_wait(10)  # 设置隐式等待10S

    wait = WebDriverWait(driver, 5) #   设置wait是驱动等待5秒才超时
    driver.maximize_window()    # 最大化网页窗口
    driver.get('http://novel.hctestedu.com/')   # 打开读书屋网址

    # el = (By.CLASS_NAME, "sj_link") # 设置元素寻找方式(书架)
    # el = (By.ID, "searchKey")   # 设置元素寻找方式(小说搜索)
    # el = (By.NAME, "searchKey")   # 设置元素寻找方式(小说搜索)
    # el = (By.CLASS_NAME, "s_int")   # 设置元素寻找方式(小说搜索)
    # el = (By.XPATH, "//body/div//div[@class='search cf']/input")   # 设置元素寻找方式(小说搜索)--通过XPATH
    # el = (By.XPATH, "//*[@class='s_int' and @name='searchKey']")   # 设置元素寻找方式(小说搜索)-通过XPATH多个属性定位
    # el = (By.XPATH, "//a[text()='我的书架']")   # 设置元素寻找方式(小说搜索)-通过XPATH的标签文本定位()
    # wait.until(ec.presence_of_element_located(el)).click()
    # el = (By.CSS_SELECTOR, "input#searchKey")   # 设置元素寻找方式()--通过css-id
    # el = (By.CSS_SELECTOR, "input.s_int")   # 设置元素寻找方式(小说搜索)--通过css-class
    # el = (By.CSS_SELECTOR, "input[name='searchKey']")   # 设置元素寻找方式(小说搜索)--通过css-属性定位name
    # el = (By.LINK_TEXT, "排行榜")   # 设置元素寻找方式(小说搜索)--通过文本
    # el = (By.PARTIAL_LINK_TEXT, "排行")   # 设置元素寻找方式(小说搜索)--通过模糊文本
    # wait.until(ec.presence_of_element_located(el)).click()
    # wait.until(ec.presence_of_element_located(el)).send_keys("大王" + Keys.ENTER)  # 通过显示等待寻找元素并点击回车键位
    # locator = (By.CSS_SELECTOR, ".s_int")
    # wait.until(ec.presence_of_element_located(locator))
    ele = driver.find_element(By.CSS_SELECTOR, ".s_int")

# ===========暂停================
    ActionChains(driver) \
        .move_to_element(ele) \
        .pause(1) \
        .click_and_hold() \
        .pause(1) \
        .send_keys("abc") \
        .perform()
    time.sleep(5)

# 按下shift键
    ActionChains(driver) \
        .key_down(Keys.SHIFT) \
        .perform()

# 释放所有action
    ActionBuilder(driver).clear_actions()

# 未释放是大写,释放后是小写
    ActionChains(driver) \
        .send_keys("d") \
        .perform()
    time.sleep(5)
    driver.close()


if __name__ == '__main__':
    P01()

 

 

标签:WEB,webdriver,el,selenium,driver,键盘,自动化,import,wait
From: https://www.cnblogs.com/gezirui/p/17544257.html

相关文章

  • Visual Studio C# 多环境配置 Web.config
    目录添加解决方案配置添加配置转换添加应对的配置VisualStudio为多环境配置Web.config不同的环境,存在不同的配置,如:数据库连接字符串,通过多配置,方便做环境切换,配置的修改<!--最简单,最麻烦的做法--><configuration><appSettings><!--正式--><!--<addkey="DbCo......
  • web前端 第四天总结
    案例1:盒子模型<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</ti......
  • 前端框架及项目面试-聚焦Vue、React、Webpack
    第1章课程导学介绍课程制作的背景和课程主要内容。第2章课程介绍先出几道面试真题,引导思考。带着问题来继续学习,效果更好。第3章Vue使用Vue是前端面试必考内容,首先要保证自己要会使用Vue。本章讲解Vue基本使用、组件使用、高级特性和VuexVue-router,这些部分的知识点和......
  • 开源一套接口自动化测试平台,大家一起学习交流
    一、概述Rocket是一款接口自动化测试平台,服务端是Python,前端Vue,源码下载方式放到末尾了。关键依赖:fastapihttprunner(v3.1.11版本)apschedulerelement-ui二、功能模块核心功能模块基本开发完成,可以直接拿来用,一些细节功能待开发,具体如下:系统管理用户管理字典管理......
  • PyWebIO 的环境配置
    本页接下来的命令都需要在终端输入。(win+r+cmd)检查python版本python-V如果您的python版本不符合要求,可以按以下步骤可以安装python3.9。更新apt。aptupdat安装python3.9。aptinstallpython3.9检查python版本。python3.9-V如果看到如下的输出代表......
  • web前端 第三天总结
    案例1:伪类选择器<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>伪类选择器</titl......
  • vite和webpack的区别
    Vite和Webpack都是现代前端开发中的常见打包工具,五个主要区别:1.开发模式不同Webpack在开发模式下依然会对所有模块进行打包操作,虽然提供了热更新,但大型项目中依然可能会出现启动和编译缓慢的问题;而Vite则采用了基于ESModule的开发服务器,只有在需要时才会编译对应的模块,大幅......
  • spring-boot-webflux-servlet-websocket-2.x 示例响应式编程
    这里是一个使用SpringBootWebFlux结合Servlet和WebSocket的示例代码:首先,确保在pom.xml文件中添加以下依赖:<dependencies><!--SpringBootWebFlux--><dependency><groupId>org.springframework.boot</groupId><artifactId>sprin......
  • web安全学习日志---xss漏洞(跨站脚本攻击)
    1.反射性xss(reflacted) 仅执行一次,非持久型。主要存在于攻击者将恶意脚本附加到url的参数中,发送给受害者,服务端未经严格过滤处理而输出在用户浏览器中,导致浏览器执行代码数据。利用场景:直接插入JS代码,修改url参数  攻<script>alert('hack')</script>防$name=str_replac......
  • 2023最新版本WebStrom安装教程【2023.1.3】
    前言本文方法可以安装使用截止当前2023.1.3最新版本WebStrom,过程非常简单,按照下面的步骤来一分钟即可搞定。1.下载安装已经安装过的可以跳过该步骤!下载到官网地址下载正版安装包JetBrainsWebStrom官网下载地址安装开始安装选择安装路径桌面快捷方式勾选创建妆......