環境
- Windows 10
- Python 3.10.1
- Selenium 4.1.0
- Beautiful Soup 4.10.0
- VSCode
使用するソースコード
以下の公開リポジトリに置いています
GitHub - masayan1126/tao-py-py: 作業自動化用 Python ライブラリ
作業自動化用 Python ライブラリ. Contribute to masayan1126/tao-py-py development by creating an account on GitHub.
Selenium
取得系メソッド
- Selenium4から、find_element_by_idなどのメソッドは非推奨になった。使用すると以下の警告が出力される
UserWarning: find_element_by_* commands are deprecated. Please use find_element() instead
- そのため、find_element(By.ID)を使用し、()の中に検索する条件を指定する必要がある
(by_*の部分はのキーワード変数byで指定する) - どの条件で検索しても返り値は、selenium.webdriver.remote
.webelement.WebElementかWebElementのリスト
内容 | メソッド | 返り値 |
タグ名で1つの要素を取得 | find_element(By.TAG_NAME, “タグ名”) | selenium.webdriver.remote .webelement.WebElement |
タグ名で全要素を取得 | find_elements(By.TAG_NAME, “タグ名”) | WebElementのリスト |
クラス名で1つの要素を取得 | find_element(By.CLASS_NAME, “クラス名”) | selenium.webdriver.remote .webelement.WebElement |
クラス名で全要素を取得 | find_elements(By.CLASS_NAME, “クラス名”) | WebElementのリスト |
ID名で1つの要素を取得 | find_element(By.ID, “ID名”) | selenium.webdriver.remote .webelement.WebElement |
ID名で要素を取得 | find_elements(By.ID, “ID名”) | WebElementのリスト |
name属性で1つの要素を取得 | find_element(By.NAME, “name属性”) | selenium.webdriver.remote .webelement.WebElement |
name属性で全要素を取得 | find_elements(By.NAME, “name属性”) | WebElementのリスト |
xpathで1つの要素を取得 | find_element(By.XPATH, “xpath”) | selenium.webdriver.remote .webelement.WebElement |
xpathで全要素を取得 | find_elements(By.XPATH, “xpath”) | WebElementのリスト |
cssセレクタで1つの要素を取得 | find_element( By.CSS_SELECTOR, “セレクタ名” ) | selenium.webdriver.remote .webelement.WebElement |
cssセレクタで全要素を取得 | find_elements( By.CSS_SELECTOR, “セレクタ名” ) | WebElementのリスト |
入力系メソッド
- 取得したselenium.webdriver.remote.webelement.WebElementがinputタグであれば、値を入力できたり、buttonタグであれば、クリックしたりすることが可能
内容 | メソッド | 返り値 |
値の入力 | WebElement.send_keys(‘入力したい文字’) | None |
特殊キーの入力(右の例はEnter) | WebElement.send_keys(Keys.ENTER) | None |
ボタンタグなどのクリック | WebElement.click() | None |
フォームの送信 | WebElement.submit() | None |
Beautiful Soup
概要
- 基本的にfind,find_all,selectがあるが、基本的にはselectでいける(はず)
メソッド一覧
内容 | メソッド | 返り値 |
タグを指定して、最初の要素を取得 | find(“タグ名”) | bs4.element.tag 要素が見つからなかった場合、Noneが返る |
タグを指定して、全ての要素を取得 | find_all(“タグ名”) | bs4.element.ResultSet ※Python組み込みのリストを継承したオブジェクト。クラス要素が見つからなかった場合、空のリストが返る |
cssセレクタで指定して、すべての要素を取得 | select(“cssセレクタ”) | bs4.element.ResultSet ※Python組み込みのリストを継承したオブジェクト。クラス要素が見つからなかった場合、空のbs4.element.ResultSetを返す |