Как я могу решить проблему, о которой говорит python’WebDriverException :: неизвестная ошибка: не удается определить статус загрузки из-за отсутствия такого контекста выполнения?

#python #selenium #google-chrome

#python #selenium #google-chrome

Вопрос:

Ошибка возникает, когда я выполняю очистку веб-страниц. с
сообщением об ошибке Selenium :

 WebDriverException: Message: unknown error: cannot determine loading 
status from no such execution context (Session info: chrome=73.0.3683.103)
  (Driver info: chromedriver=73.0.3683.68 
(47787ec04b6e38e22703e856e101e840b65afe72),platform=Windows NT 6.1.7601 
SP1 x86_64)
  

Когда новое окно задерживается, возникает следующая ошибка. Я попробовал поиск в Google, но не смог найти решение.

код:

     driver.switch_to.window(driver.window_handles[1])        
    WebDriverWait(driver,  
    60).until(EC.presence_of_element_located((By.CSS_SELECTOR,'#listForm > 
    div.contents_sub > div.cont_area > div > table.board_view.fix > tbody 
    > tr:nth-child(2) > td')))
  

Как мне получить эту ошибку?

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

1. Вы уверены driver.switch_to.window(driver.window_handles[1]) , что работает. Я имею в виду, у вас действительно есть второе окно? Вы можете напечатать количество окон, чтобы убедиться, что есть 2 окна. В идеале сообщение, похоже, появляется при попытке переключиться на окно, которого там нет.

2. Спасибо. Я попытаюсь time.sleep перед выполнением switch_to.window .

3. Это не было решено.

4. Каково количество / длина обработчиков окон перед переключением?

5. Я пишу код, который ‘While True: если len (driver.window_handles)> 1: break’ перед driver.switch_to.window . Но это все равно часто случается.

Ответ №1:

Я решил ту же проблему. Попробуйте напечатать no. активных окон, чтобы узнать, присутствует ли второе окно или нет. Затем переключитесь на второе окно. В моем случае вторая windows не была активна, поэтому я добавил wait, а затем переключился.

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

1. Я пишу код, который ‘While True: если len (driver.window_handles)> 1: break’ перед driver.switch_to.window . Но это все равно часто случается.

Ответ №2:

WebDriverWait у меня тоже не работает, но работает использование while и try except блокировка.

 from selenium.common.exceptions import WebDriverException

...
driver.switch_to.window(driver.window_handles[1])

form = None
while form is None:
    try:
        form = driver.find_element_by_id('loginform')
    except WebDriverException:
        pass

print(form)
  

Кроме того, я предлагаю попробовать geckodriver.