python: устаревшая ссылка на элемент: элемент не прикреплен к документу страницы

#python #staleelementreferenceexception

#python #исключение staleelementreferenceexception

Вопрос:

Я столкнулся с проблемой ошибка ниже:

устаревшая ссылка на элемент: элемент не прикреплен к документу страницы

Я должен щелкнуть значение в табличной форме, чтобы выбрать данные и выполнить следующие шаги.

Это мои коды, и строка ошибки является последней.

 from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get("https://tms.samil.com/ProjectMonitoring/ProjectActivityDetail")


driver.find_element_by_xpath("//*[@id='searchHeadDiv']/button").click()


driver.find_element_by_xpath("//*[@id='projectSearch']/div/div[1]/form/div[2]/a").click()
driver.find_element_by_xpath("//*[@id='projectSearch']/div/div[1]/form/div[2]/div/div/div/ul/li[2]/a").click()
project_code_input = driver.find_element_by_xpath("//*[@id='projectSearch']/div/div[1]/form/input")


project_list = '00575-01-011'
project_code_input.send_keys(project_list)
project_code_input.send_keys(Keys.ENTER)


driver.find_element_by_xpath("//*[@id='projectSearchGrid']/div[2]/table/tbody/tr[2]/td[2]").click()
  

Комментарии:

1. Похоже, вы не ждете, когда что-то будет выполнено. Старайтесь ждать или переходить в режим ожидания после каждого нажатия, особенно клавиши enter.

2. Вот почему я пишу код «driver.implicitly_wait(5)» во 2-й строке. Разве это не правильный код для ожидания?

3. driver.implicitly_wait() — это то же самое, что python sleep(). В этот момент он только ждет. Обычно вам нужно подождать после КАЖДОГО действия, такого как click(), … в этом примере вам нужно подождать после нажатия клавиши enter.

4. Большое спасибо, я попробовал функцию sleep(), и проблема решена.