実現したいこと
画面下の写真を参照してください。
表の指定した列に、「USD/JPY」があれば、注文取消の処理を行いたい。
そのために、selenium で表の「有効注文」の「通貨ペア」の一覧をテキストで取得し、「USD/JPY」と一致するか検索しに行くコードを書きたいです。
通貨名が羅列されてほしい(USD/JPY、EUR/JPY、・・・のように)が、下記のように表示されてしまう。
前提
GMOクリック証券 デモトレードのページ内を selenium でスクレイピングしています
発生している問題・エラーメッセージ
[<selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_300")>, <selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_301")>, <selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_302")>, <selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_303")>, <selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_304")>, <selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_305")>, <selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_306")>, <selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_307")>, <selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_308")>, <selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_309")>, <selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_310")>, <selenium.webdriver.remote.webelement.WebElement (session="7c29260a8ec382d34c1c75d67521a42d", element="21CE69E93A3160109802A3E8A912EE9F_element_311")>] Traceback (most recent call last): File "/Users/uta/Documents/code/fx/trade_test2.py", line 51, in <module> print(order.text) ^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/selenium/webdriver/remote/webelement.py", line 89, in text return self._execute(Command.GET_ELEMENT_TEXT)["value"] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/selenium/webdriver/remote/webelement.py", line 394, in _execute return self._parent.execute(command, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 344, in execute self.error_handler.check_response(response) File "/opt/homebrew/lib/python3.11/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: stale element not found (Session info: chrome=119.0.6045.123); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#stale-element-reference-exception
該当のソースコード
Python
1#有効注文の「通貨ペア」 2orders = driver.find_elements(By.XPATH, '//*[@id="orderListPanel"]/div/div[1]/table/tbody/tr/td[1]') 3 4#1 これが、要素名が羅列されたリストになります 5print(orders) 6 7#2 エラーが出ます 8for order in orders: 9 print(order.text) 10 11#3 この行は処理されませんが、これもエラーが出ました 12print(orders[0].text) 13
試したこと
コード内 #1 #2 #3 を試しました
表のXPATHにタイプミスがないことは何度も確認済みです
補足情報(FW/ツールのバージョンなど)

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。