Selenium ChromeDriver&Pythonでループ処理をしたいのですが、「無効な要素参照:要素がページ文書に添付されていません」というエラーが発生してしまいます。
▼実装したい動作
- ページを開く
- ページ内のURLを取得→開く
- 2で開いたページから要素を取得
- 2で開いたページ内のURLを取得して開く
- 2で取得済みURLの次の(2番目の)URLを開く→ここでエラー
この繰り返し
▼エラーメッセージ
Traceback (most recent call last): File "data.py", line 132, in <module> racer6_class = elem_racer6_class.text File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py", line 76, in tex t return self._execute(Command.GET_ELEMENT_TEXT)['value'] File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _e xecute return self._parent.execute(command, params) File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in exe cute self.error_handler.check_response(response) File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
▼記述内容
# ページを開く(前述した動作1) from selenium import webdriver driver = webdriver.Chrome('/Users/odashun1188/chromedriver') first_url = ('https://www.boatrace.jp/owpc/pc/race/index') driver.get(first_url) # ページ内のURLを取得する(前述した動作2) race_urls = [] elems_race_url = driver.find_elements_by_css_selector('.is-fBold.is-p10-7 a') for elem_race_url in elems_race_url: race_url = elem_race_url.get_attribute('href') race_urls.append(race_url) # ページを開く(前述した動作2) for race_url_list in race_urls: driver.get(race_url_list) # 要素を取得する(前述した動作3) elems_racer6_class = driver.find_elements_by_css_selector('td:nth-child(10) div.is-fs12') for elem_racer6_class in elems_racer6_class: racer6_class = elem_racer6_class.text racer6_classes.append(racer6_class) # ページURLを取得する(前述した動作4) round_urls = [] elems_round_url = driver.find_elements_by_css_selector('.is-fs14.is-fBold a') for elem_round_url in elems_round_url: round_url = elem_round_url.get_attribute('href') round_urls.append(round_url) # ページを開く(前述した動作4) for round_url_list in round_urls: driver.get(round_url_list)
どなたかお力添えいただけないでしょうか。
どうぞ宜しくお願い致します。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/09 08:45
2019/01/09 08:48