PythonのSeleniumでもキー操作、データ入力などを行っている時に、何かしらのキーを押しながらのクリックなどキーの同時押しや連続操作などを行いたいというようなことがあると思います。
そのような時に使えそうな機能の1つにActionChainsがあります。
目次
1.ActionChainsの使用例と説明
ActionChainsクラスの引数にdriverを渡してインスタンスを生成し、そのインスタンスに対してクリックやキーボード押下などの操作を追加していきます。最後にperformを実行することでそれまで追加してためていたメソッドを実行します。
具体的には、たとえば以下のようです。
from selenium.webdriver.chrome import service as fs import os from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains path_driver = os.getcwd()+'\chromedriver.exe' # ドライバー指定でChromeブラウザを開く chrome_service = fs.Service(executable_path=path_driver) driver = webdriver.Chrome(service=chrome_service) #指定したURLに遷移する driver.get("https://www.google.co.jp") #リンクテキスト名が"Gmail"のリンク要素を取得 element = driver.find_element(By.PARTIAL_LINK_TEXT, "Gmail") #Controlキーを押下しながら"Gmail"のリンクをクリック actions = ActionChains(driver) actions.key_down(Keys.CONTROL) actions.click(element) actions.perform()
1~5行目までで必要なもののインポートを行っています。
5~8行目まででChromeのドライバ指定をやっています。
9行目以降でGoogleを開いてGmailのリンクをクリックしています。
これは、なかなかいい例がなかったので以下の逆引きサイトを参考にさせてもらっています。
SeleniumAPI逆引き
https://www.seleniumqref.com/api/python/actions/Python_key_down_click.html
2.ActionChainsの別の使用例と内容
また、別の例としては以下のようなものもあります。
内容は、
「selectタグとして「abcdef」というタグがあるものとします。
importとdriver設定の後で、あらかじめその要素をクリックし、プルダウンとして表示された選択要素の中で、下矢印キーを押しながら3つ下を選択する」
ような例になりますが、以下のようなものになります。
from selenium import webdriver from selenium.webdriver.chrome import service as fs import os from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains : : : path_driver = os.getcwd()+'\chromedriver.exe' # ドライバー指定でChromeブラウザを開く chrome_service = fs.Service(executable_path=path_driver) driver = webdriver.Chrome(service=chrome_service)
element = driver.find_element(By.NAME,"abcdef") element.click() actions = ActionChains(driver) actions.key_down(Keys.DOWN) actions.key_down(Keys.DOWN) actions.key_down(Keys.DOWN) actions.key_down(Keys.ENTER) actions.perform()
これらにより、複数キーの同時押しや連続操作などが可能になるのではないかと思います。
【Python】Python仮想環境を別PCに移設する方法 - Django Girls and Boys 備忘録
【Python】Pythonで仮想環境を構築する手順 - Django Girls and Boys 備忘録
【Python 仮想環境構築】OneDriveに仮想環境を構築する方法 - Django Girls and Boys 備忘録
【Python】subprocess.Popen()を使ったプロセスの並列起動について - Django Girls and Boys 備忘録
【Python】exeファイルを実行する方法:subprocess.run()を使った簡単な手順 - Django Girls and Boys 備忘録
プログラミング初心者に最適な一冊:『いちばんやさしいGit&GitHubの教本 第2版』 - Django Girls and Boys 備忘録
【Python】フォルダ内にあるファイル名を抽出する方法 - Django Girls and Boys 備忘録
【Python】キーの同時押し、連続操作などの実施方法 - Django Girls and Boys 備忘録
【Python】PythonでPdfWriterを使ってPDFファイルを分割する方法 - Django Girls and Boys 備忘録