この記事では、python に関する関連知識を提供します。主に、Selenium の基本要素と、キーボード操作イベントをシミュレートするための Keys モジュールの使用など、キーボードとマウスのシミュレーション イベントに関連する問題について紹介します。マウス操作イベントなどをシミュレートするActionクラスについて一緒に見ていきましょう。
推奨学習: 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()
実行結果は次のとおりです。
# #上記は要素です 基本操作は実際には最も単純で基本的な操作です 次に、より難しい操作を見ていきましょう ---> マウスとキーボードのシミュレーション イベント操作。
sendkeys.html ファイルを使用して、マウスとキーボードのシミュレーション イベント操作を実装します。
sendkeys.html ファイルのページ要素は次のとおりです。
キーボード シミュレーション イベントのコード例は次のとおりです:
# 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()
実行結果は次のようになります:
まず、Action クラスがサポートする一般的なマウス操作を見てみましょう。
key_down: マウス ボタンの押下をシミュレートします。を作成するため、私たちがデモするものは比較的単純なシナリオでもあります。
- key_up: マウス ボタンのポップアップをシミュレートします。
- click: マウス ボタンのクリック (クリック) をシミュレートします。
- context_click: マウスの右ボタンをクリックします
- double_click: マウス ボタンのクリック (ダブルクリック) をシミュレートします
- send_keys: 現在フォーカスされている要素にキーを送信します
- click_and_hold: マウスの左ボタンをクリックします。放さないでください (ドラッグ)
- release: 放し、押していたマウス ボタンを放します
- move_to: マウスを移動します...
- drag_and_drop: ドラッグ アンド ドロップ 立ち上がって捨ててください...
- perform: どのような操作を行っても、最後に送信するには
#を実行する必要があります- 自動化された Case
#PS: 実際のシーンでは起こりません。非常に複雑なマウス操作イベントを使用して
#マウス イベントのシミュレーション
コード例は次のとおりです。
# 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 が使用されます。カテゴリはほとんどありません。
推奨学習:
Python ビデオ チュートリアル
以上がSelenium の基本要素とキーボードとマウスのシミュレーション イベントの Python による実践的な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。