Python StaleElementReferenceException: Сообщение: ссылка на устаревший элемент: элемент не прикреплен к документу страницы - PullRequest
0 голосов
/ 13 мая 2019

Я новичок в селене. И когда я выполнял работу в цикле for, это выдало ошибку. Первый цикл работает хорошо, когда его охват во второй раз приведен ниже ошибки.

elenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

Я пробовал использовать Time.wait, а также webdriver.wait

def function(foo):
    driver.get("https://truckbhada.com/PostedLoadDetails?st=Maharashtra")
    token = driver.find_elements_by_xpath('//table[@class="k-selectable"]/tbody/tr/td/a')

    for tr in token:
        tr.click()
        tr = driver.find_element_by_id("ContentPlaceHolder1_btnloaddetails")
        tr.click()
        print("---------")
        print(driver.find_element_by_id("ContentPlaceHolder1_lblmobile").text)
        print("---=====---")
        driver.back()
        driver.back()

Просто хочу работать с этим кодом в любое время для работы цикла его работа, когда просто первый раз для цикла работает во второй раз его ошибка.

1 Ответ

0 голосов
/ 13 мая 2019

Клик переходит на другую страницу, что означает, что драйвер теряет ранее расположенные элементы.Вы должны перемещать их на каждой итерации.Вы можете использовать индекс для отслеживания вашего местоположения в списке

def function(foo):
    driver.get("https://truckbhada.com/PostedLoadDetails?st=Maharashtra")
    token = driver.find_elements_by_xpath('//table[@class="k-selectable"]/tbody/tr/td/a')

    for i in range(len(token)):
        tr = driver.find_elements_by_xpath('//table[@class="k-selectable"]/tbody/tr/td/a')
        tr[i].click()
        tr = driver.find_element_by_id("ContentPlaceHolder1_btnloaddetails")
        tr.click()
        print("---------")
        print(driver.find_element_by_id("ContentPlaceHolder1_lblmobile").text)
        print("---=====---")
        driver.back()
        driver.back()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...