찾다
백엔드 개발파이썬 튜토리얼셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석

이 기사에서는 python에 대한 관련 지식을 제공합니다. 여기서는 Keys 모듈을 사용하여 키보드 작업 이벤트를 시뮬레이션하고 Action 클래스를 사용하여 마우스 작업 이벤트를 시뮬레이션하는 등 셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트와 관련된 문제를 주로 소개합니다. 등, 아래에서 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.

셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석

추천 학습: python 비디오 튜토리얼

특정 요소를 찾으면 이전 장에서 수행한 클릭 작업과 같은 이 요소에 대한 특정 작업을 수행할 수 있습니다. 이것은 가장 간단한 작업이며 webdriver에는 다른 작업이 있습니다. 예를 들어, 요소의 기본 작업(클릭, 입력, 지우기)뿐만 아니라 마우스 및 키보드 시뮬레이션 이벤트, 팝업 상자 처리, 다중 페이지 전환 등과 같은 일부 고급 작업 등이 모두 우리가 수행하는 작업입니다. 이해해야 하며 자동화된 테스트를 수행할 때 자주 사용됩니다. 오늘 장에서는 먼저 요소의 기본 동작과 마우스, 키보드 시뮬레이션 이벤트 동작을 배워보겠습니다. click 操作。这是最简单的操作,webdriver 还有其他的操作。比如元素的基本操作(点击、输入、清除),还有一些高级操作如鼠标键盘模拟事件、弹出框处理、多页面切换等… 这些都是需要我们了解的内容,也是在做自动化测试的时候经常遇到的一些基本场景。今天这一章节,我们就先来学习一下元素的基本操作与鼠标键盘模拟事件的操作吧。

元素的基本操作

利用我们之前使用的本地 form.html 文件,练习一下元素的基本点击、输入、清除操作。

代码示例如下:

# coding:utf-8

from time import sleep
from selenium import webdriver


driver = webdriver.Chrome()     # 启动 Chrome浏览器的 driver
driver.maximize_window()        # Chrome 浏览器最大化
driver.get('file:///Users/workspace/WEB_TEST_HTML/form.html')       # 打开本地的 "form.html" 文件
sleep(1)
email_element = driver.find_element_by_xpath('//*[@id="inputEmail"]')    # 通过 xpath 定位 Email 输入框。
email_element.send_keys('username')     # Email 输入框输入 "username"
sleep(1)
email_element.clear()                   # 清除 Email 输入框内容
sleep(1)
email_element.send_keys('admin')        # Email 输入框输入 "admin"

driver.find_element_by_xpath('//*[@id="inputPassword"]').send_keys('123456')    # Password 输入框输入 "123456"
sleep(1)
driver.find_element_by_xpath('/html/body/form/div[3]/div/button').click()		# 通过 xpath 定位 "Sign in" 按钮并点击

driver.quit()

运行结果如下:


셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석


以上就是属于元素的基本操作,其实就是最简单最基本的操作,接下来我们继续看看高一点难度的操作 ---> 鼠标键盘模拟事件操作。

鼠标键盘模拟事件操作

利用我们本地的 sendkeys.html 文件,实现鼠标键盘的模拟事件操作。sendkeys.html 文件的页面元素如下图:


셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석


利用 Keys 模块模拟键盘操作事件

ps:使用 Keys 模块需要执行导入操作: "from selenium.webdriver.common.keys import Keys"

键盘模拟事件代码示例如下:

# coding:utf-8

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()     # 启动 Chrome浏览器的 driver
driver.maximize_window()        # Chrome 浏览器最大化
driver.get('file:///Users/workspace/WEB_TEST_HTML/sendkeys.html')   # 打开本地的 "form.html" 文件
sleep(1)

# 这里需要注意一下,因为我使用的是 Mac ,所以键盘 ctrl 事件是 "Keys.COMMAND" ,如果是 Win 系统的话,ctrl 事件是 "Keys.CONTROL"
driver.find_element_by_id('A').send_keys((Keys.COMMAND, 'a'))       # 通过 id 定位 "id = A" 的元素,执行键盘事件 command + a
driver.find_element_by_id('A').send_keys((Keys.COMMAND, 'x'))       # 通过 id 定位 "id = A" 的元素,执行键盘事件 command + x
sleep(1)
driver.find_element_by_id('B').send_keys((Keys.COMMAND, 'v'))       # 通过 id 定位 "id = B" 的元素,执行键盘事件 command + v
sleep(1)
driver.find_element_by_id('B').send_keys((Keys.COMMAND, 'a'))       # 通过 id 定位 "id = B" 的元素,执行键盘事件 command + a
sleep(1)
driver.find_element_by_id('B').send_keys((Keys.COMMAND, 'c'))       # 通过 id 定位 "id = B" 的元素,执行键盘事件 command + c
sleep(1)
driver.find_element_by_id('A').send_keys((Keys.COMMAND, 'v'))       # 通过 id 定位 "id = A" 的元素,执行键盘事件 command + v
sleep(1)

driver.quit()

运行结果如下:


셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석


利用 Action 类模拟鼠标操作事件

PS:模拟鼠标操作的场景并不是很多,了解即可。同时 Action 类需要执行 "from selenium.webdriver import ActionChains"

先来看一下,Action 类都支持哪些鼠标的常用操作。

  • key_down:模拟鼠标按键按下
  • key_up:模拟鼠标按键弹起
  • click:模拟鼠标按键点击(单击)
  • context_click:点击鼠标右键
  • double_click:模拟鼠标按键点击(双击)
  • send_keys:发送某个键到当前焦点的元素
  • click_and_hold:点击鼠标左键,不松开(拖拽)
  • release:释放、松开按住的鼠标按钮
  • move_to:鼠标移动到…
  • drag_and_drop:拖拽起来丢掉那里去…
  • perform:无论做了什么操作,最后都需要 perform 去提交

PS:实际场景中不会是用很复杂的鼠标操作事件来进行 自动化Case的编写,所以我们演示的也是比较简单的场景。

模拟鼠标事件 代码示例如下:

# coding:utf-8

from time import sleep
from selenium import webdriver
from selenium.webdriver import ActionChains


driver = webdriver.Chrome()     # 启动 Chrome浏览器的 driver
driver.maximize_window()        # Chrome 浏览器最大化
driver.get('file:///Users/workspace/WEB_TEST_HTML/sendkeys.html')   # 打开本地的 "form.html" 文件
sleep(1)

# 这里需要注意一下,因为我使用的是 Mac ,所以键盘 ctrl 事件是 "Keys.COMMAND" ,如果是 Win 系统的话,ctrl 事件是 "Keys.CONTROL"
double_click_element = driver.find_element_by_id('A')
# 通过 id 定位 "id = A" 的元素赋值给 double_click_element

ActionChains(driver).double_click(double_click_element).context_click(double_click_element).perform()
# 通过 ActionChains 类将 "driver" 转换,先双击、然后执行右击操作【这种串联起来的操作,叫做链式用法,可以根据这个链一直往下写】
sleep(2)

ActionChains(driver).context_click(double_click_element).perform()
# 通过 ActionChains 类将 "driver" 转换,然后执行右击操作
sleep(2)

driver.quit()

运行结果如下:


셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석

以上就是使用 Action 类实现一些特殊场景的模拟,比较常用的就是 双击、右击、拖拽 等场景使用的略多一些,其他的场景使用 Action

요소의 기본 작업

앞서 사용했던 로컬 form.html 파일을 사용하여 요소의 기본 클릭, 입력 및 지우기 작업을 연습해 보세요.

코드 예시는 다음과 같습니다. rrreee

실행 결과는 다음과 같습니다. 🎜

셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석🎜


🎜위는 요소의 기본 동작입니다. 사실 가장 간단합니다. 그리고 가장 기본적인 조작을 계속해서 살펴보겠습니다.---> 마우스 및 키보드 시뮬레이션 이벤트 조작. 🎜

마우스 및 키보드 시뮬레이션 이벤트 작업

🎜로컬 sendkeys.html 파일을 사용하여 마우스 및 키보드 시뮬레이션 이벤트 작업을 구현하세요. sendkeys.html 파일의 페이지 요소는 다음과 같습니다: 🎜

셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석🎜


Keys 모듈을 사용하여 키보드 작동 이벤트 시뮬레이션

🎜 ps: 키 사용 모듈은 가져오기 작업을 수행해야 합니다: "selenium.webdriver.common.keys에서 키 가져오기" 🎜🎜키보드 시뮬레이션 이벤트 코드 예는 다음과 같습니다. 🎜rrreee🎜실행 결과는 다음과 같습니다. 🎜

셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석🎜


Action 클래스를 사용하여 마우스 작업 이벤트 시뮬레이션🎜PS: 마우스 작업을 시뮬레이션하는 시나리오는 많지 않으므로 이해하기만 하면 됩니다. 동시에 Action 클래스는 "from selenium.webdriver import ActionChains"🎜🎜를 실행해야 합니다. 먼저 Action 클래스가 지원하는 일반적인 마우스 작업이 무엇인지 살펴보겠습니다. 🎜
  • key_down: 마우스 버튼 누르기 시뮬레이션
  • key_up: 마우스 버튼 팝업 시뮬레이션
  • click: 마우스 버튼 클릭(클릭) 시뮬레이션
  • li>
  • context_click: 마우스 오른쪽 버튼 클릭
  • double_click: 마우스 버튼 클릭 시뮬레이션(더블클릭)
  • send_keys: 현재 키를 보냅니다. 집중된 요소
  • click_and_hold: 놓지 않고 왼쪽 마우스 버튼 클릭(드래그)
  • release: 놓기, 잡고 있는 마우스 버튼 놓기
  • move_to: 이동 마우스를...
  • drag_and_drop: 거기에 끌어서 놓습니다...
  • perform: 어떤 작업이 완료되든 수행해야 합니다. 마지막에 제출
blockquote>🎜PS: 실제 시나리오에서는 자동화 사례를 작성하는 데 매우 복잡한 마우스 조작 이벤트가 사용되지 않으므로 우리가 시연하는 것은 다음과 같습니다. 비교적 간단한 시나리오이기도 합니다. 🎜🎜마우스 이벤트 시뮬레이션 코드 예시는 다음과 같습니다. 🎜rrreee🎜실행 결과는 다음과 같습니다. 🎜

셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석🎜🎜위는 Action의 사용 예입니다. code> 클래스를 사용하여 몇 가지 특별한 시나리오를 시뮬레이션합니다. 더 일반적으로 사용되는 시나리오는 <code>두 번 클릭, 마우스 오른쪽 버튼 클릭, 드래그 및 약간 더 많이 사용되는 기타 시나리오입니다. 다른 시나리오에서는 덜 사용됩니다. 🎜🎜추천 학습: 🎜python 비디오 튜토리얼🎜🎜

위 내용은 셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 CSDN에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
详细讲解Python之Seaborn(数据可视化)详细讲解Python之Seaborn(数据可视化)Apr 21, 2022 pm 06:08 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

详细了解Python进程池与进程锁详细了解Python进程池与进程锁May 10, 2022 pm 06:11 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

Python自动化实践之筛选简历Python自动化实践之筛选简历Jun 07, 2022 pm 06:59 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

归纳总结Python标准库归纳总结Python标准库May 03, 2022 am 09:00 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于标准库总结的相关问题,下面一起来看一下,希望对大家有帮助。

分享10款高效的VSCode插件,总有一款能够惊艳到你!!分享10款高效的VSCode插件,总有一款能够惊艳到你!!Mar 09, 2021 am 10:15 AM

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

Python数据类型详解之字符串、数字Python数据类型详解之字符串、数字Apr 27, 2022 pm 07:27 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

python中文是什么意思python中文是什么意思Jun 24, 2019 pm 02:22 PM

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

详细介绍python的numpy模块详细介绍python的numpy模块May 19, 2022 am 11:43 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.