何があったか
とあるサイトをスクレイピングしている際に若干Xpathが変わることがありました。
その際、例外処理で対応したので備忘録になります。
実際のコード
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
driver_path = "./chromedriver.exe"
chrome_service = service.Service(executable_path=driver_path)
driver = webdriver.Chrome(service=chrome_service)
xpath_list = [] # Xpathのリスト
for xpath in xpath_list:
try:
driver.find_element(by=By.XPATH, value=xpath).click()
break
except NoSuchElementException:
pass
工夫点
Xpathの候補を事前に入れておくことによって、候補の数を自動で試す。
→候補が単体でも使用可能なので、関数化することによりコード全体をスッキリさせることも可能かと思います!