a computer screen with a bunch of code on it

【Python】SeleniumでRPA作成してみる

Seleniumの概要

SeleniumはWebブラウザのUIを自動制御するためのオープンソースサードパーティ製のテストツールです。
Seleniumを使用することで、webブラウザを自動操作して、WEBページの検索・取得・フォーム入力・クリックなどの非常に多くのWebアプリケーションなどの操作を自動化することができます。
また、WEBサイトの性能テストなども行うことが出来ます。

Python環境でSeleniumを使用できるようにする

pipコマンドでSeleniumをインストールします

pip3 install selenium

chromedriverをインストールします

brew cask install chromedriver

自動入力の機能作成

流れは以下になります。

  • 対象のページにアクセスする
  • 名前、ユーザー名、パスワードを入力する

Seleniumによるブラウザ操作のコードが以下になります。

  • get(URL)で特定のURLを開きます。
  • send_keys(キーワード)テキストボックスに入力するキーワードを入れます。

※次へボタンも押せますが、今回自動入力されているか確認したかったのでコメントアウトしました。

#ライブラリ読み込み
from selenium import webdriver
import time

#クロームの立ち上げ
driver=webdriver.Chrome()

#ページ接続
driver.get('https://accounts.google.com/signup/v2/webcreateaccount?flowName=GlifWebSignIn&flowEntry=SignUp')

#ユーザ名
driver.find_element_by_xpath('//*[@id="lastName"]').send_keys("山田")
driver.find_element_by_xpath('//*[@id="firstName"]').send_keys("太郎")
driver.find_element_by_xpath('//*[@id="username"]').send_keys("yamayamatarou123273asd")

#パスワード
driver.find_element_by_xpath('//*[@name="Passwd"]').send_keys("Atgbsdfgh123")
driver.find_element_by_xpath('//*[@name="ConfirmPasswd"]').send_keys("Atgbsdfgh123")

#次へのクリック
#driver.find_element_by_xpath('//*[@class="VfPpkd-LgbsSe VfPpkd-LgbsSe-OWXEXe-k8QpJ VfPpkd-LgbsSe-OWXEXe-dgl2Hf nCP5yc AjY5Oe DuMIQc LQeN7 qIypjc TrZEUc lw1w4b"]').click()



実行結果

実行すると自動でブラウザが起動し、以下のように自動で入力されます。

補足情報

Google Chromeの拡張機能のSelenium IDEを使用することでRPAを簡単に作成することができます。
今回はGoogleから検索をし、サイトを開くRPAを作成します。

Google Chromeから拡張機能のSelenium IDEを選択します。

Record a new test in a new project を押下します。

PROJECT NAME に任意の名称を入力します。

RPAの動作時のURLを入力します。
今回はGoogleで検索を行うのでGoogleのURLを入力しています。

Googleの検索画面が表示されるので、Pythonを検索し一番上に出てきたサイトを開きます。

開けたら再度拡張機能のSelenium IDEを選択します。

右上に表示されている赤い停止ボタンを押下します。

TEST NAME に任意の名称を入力します。

左に表示されているTEST NAME を右クリックし、Exportを選択します。

Exportする言語が表示されるので、Python pytestを選択し、Exportを押下します。

名前に任意の名称、場所に任意の保存先を入力し保存を押下します。

指定した任意の場所に下記のようなソースが保存されていれば完了です。

# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class TestTEST():
  def setup_method(self, method):
    self.driver = webdriver.Chrome()
    self.vars = {}
  
  def teardown_method(self, method):
    self.driver.quit()
  
  def test_tEST(self):
    self.driver.get("https://www.google.com/")
    self.driver.set_window_size(1440, 807)
    self.driver.find_element(By.ID, "APjFqb").click()
    self.driver.find_element(By.ID, "APjFqb").send_keys("Python")
    self.driver.find_element(By.CSS_SELECTOR, ".ikrT4e").click()
    self.driver.find_element(By.CSS_SELECTOR, "center:nth-child(1) > .gNO89b").click()
    self.driver.find_element(By.CSS_SELECTOR, ".kvH3mc:nth-child(2) .LC20lb").click()

Selenium IDEを使用すると操作をそのままソースにすることが出来るので、
Pythonに詳しくない方でもRPAを簡単に作成することが出来ます。

関連記事一覧

  1. この記事へのコメントはありません。