Python Seleniumでスクレイピングするときに、下記コードのuntilによる待機を入れていますが、たまにエラーが出ている時があるため、調査すると、要素がうまく取得できていませんでした。
下記のコードでは、class xxxが取得できるまで待機を指示していますが、次の要素まで表示されていないタイミングで取得している時があるのではないかと懸念しております。
class名 + class名 + valueまで待機を指示するように書き換えることはできますでしょうか?
python
1element = wait.until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "xxx")), message = "タイムアウト")
取得したい要素
python
1ex = driver.find_element_by_class_name("FPdoLc.lJ9FBc").find_element_by_class_name("gNO89b").get_attribute("value")
全文です
python
1from selenium.webdriver.support import expected_conditions as EC 2import inspect 3import traceback 4 5driver = webdriver.Firefox(executable_path=path, options=options) 6driver.implicitly_wait(15) 7wait = WebDriverWait(driver, 5) 8 9try: 10 driver.get("https://www.google.com/") 11 element = wait.until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "xxx")), message = "タイムアウト") 12 ex = driver.find_element_by_class_name("FPdoLc.lJ9FBc").find_element_by_class_name("gNO89b").get_attribute("value") 13except Exception as e: 14 print(location(), e) 15 print(traceback.format_exc())
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/12 08:20 編集
2022/12/12 08:39 編集
2022/12/12 08:43
2022/12/12 08:49 編集
2022/12/12 11:49
2022/12/12 23:04 編集
2022/12/13 02:50
2022/12/13 08:24