3

Chrome Webdriver と Splinter を使用して Web ページをナビゲートする Python コードを作成しています。

driver.switch_to.frame(driver.find_element_by_id("accountSummaryFrame"))

time.sleep(10)
login2 = driver.find_elements_by_tag_name("a")
actions.click(login2)
actions.perform()

actions.perform() でエラーが発生します。

selenium.common.exceptions.StaleElementReferenceException: Message: 'stale element reference:    
element is not attached to the page document\n  (Session info: chrome=37.0.2062.124)\n  (Driver   
info: chromedriver=2.11.298604 (75ea2fdb5c87f133a8e1b8da16f6091fb7d5321e),platform=Windows NT 
6.2 x86_64)' 

time.sleep 関数を試しましたが、古いエラーが引き続き発生します。これはページ上の唯一の要素であり、プログラムがそれを見つけたことを私は知っています:

[<selenium.webdriver.remote.webelement.WebElement object at 0x033B3B10>]

この問題を解決するために私にできることをお聞きしたいです。ありがとうございました!

編集:

コードを find_element_by_class_name に変更し、要素を 1 回だけ検索しましたが、古い要素エラーが発生しましたか?

time.sleep(5)
driver.switch_to.frame(driver.find_element_by_id("accountSummaryFrame"))
time.sleep(5)
actions.click(driver.find_element_by_class_name("platform_spot")).perform()

コード全体は次のとおりです。

import os
from splinter import Browser
from splinter import driver
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains


url = "http://www.example.com"
driver = webdriver.Chrome(executable_path='C:\chromedriver_win32\chromedriver.exe')
driver.get(url)

actions = ActionChains(driver)
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))

form_username = driver.find_element_by_name('login[username]')
form_password = driver.find_element_by_name('login[password]')

form_username.send_keys("username")
form_password.send_keys("password")

time.sleep(5)
login_button = driver.find_element_by_id('mini_submit_login')
actions.click(login_button)
actions.perform()
driver.switch_to.default_content()


time.sleep(5)
driver.switch_to.frame(driver.find_element_by_id("accountSummaryFrame"))
time.sleep(5)
actions.click(driver.find_element_by_class_name("platform_spot")).perform()
4

0 に答える 0