目次
説明
今回はseleniumでchromeを開きgoogleのホームページに行き、
python seleniumと検索し、10秒後にchromeを閉じる動作をする、
プログラムを作ります。
環境
- Windows
- Chrome
ライブラリー
- selenium
- webdriver_manager
- time
ステップ
- 準備
- ライブラリーのインポート
- ドライバー指定
- url指定
- ページを開く
- 要素取得&動作
準備
ライブラリーのインストール
- selemium
pip install selenium
- webdriver_manager
pip install webdriver_manager
ライブラリーのインポート
import time
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
ドライバー指定
driver = webdriver.Chrome(ChromeDriverManager().install())
url指定
url = 'https://www.google.com/'
ページを開く
driver.get(url)
要素取得&動作
time.sleep(2)
# 2秒間動作を遅らせる
search_box = driver.find_element_by_name("q")
# google検索ページのnameがqの要素を特定(検索欄)
search_box.send_keys('python selenium')
# 特定した要素(検索欄)にpython seleniumという文字列を入れる
search_box.submit()
# サブミットする
time.sleep(10)
driver.quit()
# 10秒後閉じる
最終コード
import time
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
def selenium_test():
driver = webdriver.Chrome(ChromeDriverManager().install())
url = 'https://www.google.com/'
driver.get(url)
time.sleep(2)
# 2秒間動作を遅らせる
search_box = driver.find_element_by_name("q")
# google検索ページのnameがqの要素を特定(検索欄)
search_box.send_keys('python selenium')
# 特定した要素(検索欄)にpython seleniumという文字列を入れる
search_box.submit()
# サブミットする
time.sleep(10)
driver.quit()
# 10秒後閉じる
selenium_test()
補足
取得できる要素リスト(単数)
- find_element_by_id(htmlで最初にマッチしたid)
- find_element_by_name(htmlで最初にマッチしたname)
- find_element_by_xpath(xml形式でマッチする)
例:
<html>
<body>
<form id="loginForm">
<input name="username" type="text" />
<input name="password" type="password" />
<input name="continue" type="submit" value="Login" />
<input name="continue" type="button" value="Clear" />
</form>
</body>
<html>
formを取得する場合:
login_form = driver.find_element_by_xpath("/html/body/form[1]")
login_form = driver.find_element_by_xpath("//form[1]")
- find_element_by_link_text(htmlで最初にマッチしたa)
- find_element_by_partial_link_text(htmlで最初にマッチしたaの一部)
- find_element_by_tag_name(htmlで最初にマッチしたtag)
- find_element_by_class_name(htmlで最初にマッチしたclass)
例:
<html>
<body>
<p class="content">Site content goes here.</p>
</body>
<html>
content = driver.find_element_by_class_name('content')
- find_element_by_css_selector(htmlで最初にマッチしたclass selecor)
例:
<html>
<body>
<p class="content">Site content goes here.</p>
</body>
<html>
content = driver.find_element_by_class_name('p.content')
取得できる要素リスト(複数)
取得した要素はリストとして返されます。
- find_elements_by_name
- find_elements_by_xpath
- find_elements_by_link_text
- find_elements_by_partial_link_text
- find_elements_by_tag_name
- find_elements_by_class_name
- find_elements_by_css_selector
その他動作
- click()(ボタンのクリック)
- submit()(サブミット)
- send_keys(インプットの中に文字列などを入れる)