#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(), и проблема решена.