# Selenium4の基本
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome import service as fs
from time import sleep
DRIVER_PATH = 'lib\\chromedriver.exe'
# ドライバー指定でChromeブラウザを開く
chrome_service = fs.Service(executable_path=DRIVER_PATH)
driver = webdriver.Chrome(service=chrome_service)
driver.get('https://youtu.be/Gwkx8DIWxsc') # Webサイトのページにアクセス
print(driver.title) # 現在のページタイトルを取得する
print(driver.current_url) #現在ページのURLを取得する
sleep(5) #5秒スリープ 非推奨な方法 WebDriverWaitを使う方法が良いようだ。
search_box = driver.find_element(By.NAME, 'search_query') #検索テキストボックス要素を取得
search_box.send_keys("ナスのペットボトル実験")#検索テキストボックス要素にキーワードを入力
sleep(2)
search_btn = driver.find_element(By.ID, 'search-icon-legacy') # 検索ボタン要素を取得
search_btn.send_keys(Keys.RETURN) # 検索ボタン要素にてEnterキーボタンの押下イベントを発動
sleep(5)
# タグを指定して要素リストを取得する
textElms = driver.find_elements(By.TAG_NAME, 'yt-formatted-string')
for e in textElms:
print(e.text) # 要素のテキストを取得(inner html)
print('Success!')
# ブラウザを閉じる
driver.quit()
implicitly_wait
driver.implicitly_wait(10) # 要素が見つかるまで最大10秒待機する
alert_is_present
elm = WebDriverWait(driver, 15).until(EC.alert_is_present())
参考:Selenium4のalertダイアログ制御 | アラート待機、アラートテキスト取得
element_to_be_clickable
visibility_of_element_located
invisibility_of_element_located
text_to_be_present_in_element
presence_of_element_located
presence_of_all_elements_located
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome import service as fs
from time import sleep
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
def document_initialised(driver):
return driver.execute_script("return initialised")
DRIVER_PATH = 'lib\\chromedriver.exe'
chrome_service = fs.Service(executable_path=DRIVER_PATH)
driver = webdriver.Chrome(service=chrome_service)
driver.implicitly_wait(10) # 暗黙的待機時間(秒)。要素が見つかるまでの最大待機時間
wait = WebDriverWait(driver, 10)
driver.get('https://youtu.be/Gwkx8DIWxsc') # Webサイトのページにアクセス
driver.back() # ブラウザバック
driver.forward() # ブラウザの次へボタン
driver.refresh() # ブラウザを更新(ブラウザのリロード)
ソースコード
# Selenium4のalertダイアログ制御 | アラート待機、アラートテキスト取得
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome import service as fs
from time import sleep
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
DRIVER_PATH = 'C:¥¥Users¥¥user¥¥git¥¥selenium_scraping_demo¥¥lib¥¥chromedriver.exe'
# ドライバー指定でChromeブラウザを開く
chrome_service = fs.Service(executable_path=DRIVER_PATH)
driver = webdriver.Chrome(service=chrome_service)
driver.implicitly_wait(10) # 暗黙的待機時間(秒)。要素が見つかるまでの最大待機時間
driver.get('https://amaraimusi.sakura.ne.jp/selenium_scraping_demo/a001/alert_is_present/demo.html') # Webサイトのページにアクセス
elm1 = driver.find_element(By.ID, 'test1')
print(elm1.text)
alert = WebDriverWait(driver, 15).until(EC.alert_is_present()) # アラートが表示されるまで待機(この例では最大15秒まで待機)
alert_text = alert.text # alertのテキストを取得
print(alert_text)
alert.accept() # alertのボタンをクリック
sleep(1) # alert_is_presentだけでは不十分。1秒だけスリープする必要がある。
elm1 = driver.find_element(By.ID, 'test1')
print(elm1.text)
elm1 = driver.find_element(By.ID, 'test2')
print(elm1.get_attribute('src'))
print('Success!')
driver.quit() # ブラウザを閉じる
elm = driver.find_element(By.ID, 'neko_id')
src = elm.get_attribute('src')
href = elm.get_attribute('href')
value = elm.get_attribute('value')