Selenium の基本要素とキーボードとマウスのシミュレーション イベントの Python による実践的な分析

WBOY
リリース: 2022-06-14 19:11:26
転載
2725 人が閲覧しました

この記事では、python に関する関連知識を提供します。主に、Selenium の基本要素と、キーボード操作イベントをシミュレートするための Keys モジュールの使用など、キーボードとマウスのシミュレーション イベントに関連する問題について紹介します。マウス操作イベントなどをシミュレートするActionクラスについて一緒に見ていきましょう。

Selenium の基本要素とキーボードとマウスのシミュレーション イベントの Python による実践的な分析

推奨学習: Python ビデオ チュートリアル

特定の要素を見つけたら、次のような要素の操作を指定できます。 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()
ログイン後にコピー

実行結果は次のとおりです。


Selenium の基本要素とキーボードとマウスのシミュレーション イベントの Python による実践的な分析


# #上記は要素です 基本操作は実際には最も単純で基本的な操作です 次に、より難しい操作を見ていきましょう ---> マウスとキーボードのシミュレーション イベント操作。

マウスとキーボードのシミュレーション イベント操作

ローカルの

sendkeys.html ファイルを使用して、マウスとキーボードのシミュレーション イベント操作を実装します。 sendkeys.html ファイルのページ要素は次のとおりです。


Selenium の基本要素とキーボードとマウスのシミュレーション イベントの 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()
ログイン後にコピー

実行結果は次のようになります:


Selenium の基本要素とキーボードとマウスのシミュレーション イベントの 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: どのような操作を行っても、最後に送信するには
  • #を実行する必要があります
  • #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

クラスを使用して、いくつかの特別なシーンのシミュレーションを実装するものです。より一般的に使用されるものは、Selenium の基本要素とキーボードとマウスのシミュレーション イベントの Python による実践的な分析ダブルクリック、右クリック、ドラッグ

およびその他のシーンです。はもう少し多く使用され、他のシーンでは

Action が使用されます。カテゴリはほとんどありません。 推奨学習: Python ビデオ チュートリアル

以上がSelenium の基本要素とキーボードとマウスのシミュレーション イベントの Python による実践的な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!