이 기사에서는 python에 대한 관련 지식을 제공합니다. 여기서는 Keys 모듈을 사용하여 키보드 작업 이벤트를 시뮬레이션하고 Action 클래스를 사용하여 마우스 작업 이벤트를 시뮬레이션하는 등 셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트와 관련된 문제를 주로 소개합니다. 등, 아래에서 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.
추천 학습: 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()
运行结果如下:
以上就是属于元素的基本操作,其实就是最简单最基本的操作,接下来我们继续看看高一点难度的操作 ---> 鼠标键盘模拟事件操作。
利用我们本地的 sendkeys.html
文件,实现鼠标键盘的模拟事件操作。sendkeys.html
文件的页面元素如下图:
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()
运行结果如下:
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()
运行结果如下:
以上就是使用 Action
类实现一些特殊场景的模拟,比较常用的就是 双击、右击、拖拽
等场景使用的略多一些,其他的场景使用 Action
form.html
파일을 사용하여 요소의 기본 클릭, 입력 및 지우기 작업을 연습해 보세요. 코드 예시는 다음과 같습니다. rrreee
실행 결과는 다음과 같습니다. 🎜🎜
위는 요소의 기본 동작입니다. 사실 가장 간단합니다. 그리고 가장 기본적인 조작을 계속해서 살펴보겠습니다.---> 마우스 및 키보드 시뮬레이션 이벤트 조작.
🎜sendkeys.html
파일을 사용하여 마우스 및 키보드 시뮬레이션 이벤트 작업을 구현하세요. sendkeys.html
파일의 페이지 요소는 다음과 같습니다: 🎜🎜
ps: 키 사용 모듈은 가져오기 작업을 수행해야 합니다: "selenium.webdriver.common.keys에서 키 가져오기"
🎜🎜키보드 시뮬레이션 이벤트 코드 예는 다음과 같습니다. 🎜rrreee🎜실행 결과는 다음과 같습니다. 🎜🎜
PS: 마우스 작업을 시뮬레이션하는 시나리오는 많지 않으므로 이해하기만 하면 됩니다. 동시에 Action 클래스는 "from selenium.webdriver import ActionChains"
🎜🎜를 실행해야 합니다. 먼저 Action 클래스가 지원하는 일반적인 마우스 작업이 무엇인지 살펴보겠습니다. 🎜blockquote>🎜PS: 실제 시나리오에서는
- key_down: 마우스 버튼 누르기 시뮬레이션
- key_up: 마우스 버튼 팝업 시뮬레이션
- click: 마우스 버튼 클릭(클릭) 시뮬레이션
- li>
- context_click: 마우스 오른쪽 버튼 클릭
- double_click: 마우스 버튼 클릭 시뮬레이션(더블클릭)
- send_keys: 현재 키를 보냅니다. 집중된 요소
- click_and_hold: 놓지 않고 왼쪽 마우스 버튼 클릭(드래그)
- release: 놓기, 잡고 있는 마우스 버튼 놓기
- move_to: 이동 마우스를...
- drag_and_drop: 거기에 끌어서 놓습니다...
- perform: 어떤 작업이 완료되든
수행
해야 합니다. 마지막에 제출자동화 사례
를 작성하는 데 매우 복잡한 마우스 조작 이벤트가 사용되지 않으므로 우리가 시연하는 것은 다음과 같습니다. 비교적 간단한 시나리오이기도 합니다. 🎜🎜마우스 이벤트 시뮬레이션
코드 예시는 다음과 같습니다. 🎜rrreee🎜실행 결과는 다음과 같습니다. 🎜
🎜🎜위는
Action의 사용 예입니다. code> 클래스를 사용하여 몇 가지 특별한 시나리오를 시뮬레이션합니다. 더 일반적으로 사용되는 시나리오는 <code>두 번 클릭, 마우스 오른쪽 버튼 클릭, 드래그
및 약간 더 많이 사용되는 기타 시나리오입니다. 다른 시나리오에서는 덜 사용됩니다. 🎜🎜추천 학습: 🎜python 비디오 튜토리얼🎜🎜
위 내용은 셀레늄의 기본 요소와 키보드 및 마우스 시뮬레이션 이벤트에 대한 Python 실제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!