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

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

WBOY
WBOY앞으로
2022-06-10 18:09:272757검색

이 기사에서는 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.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제