Python Selenium Chrome - Как обновить страницу, если она загружается в первый раз слишком долго - PullRequest
0 голосов
/ 27 июня 2018

Я хотел бы обновить страницу, если время загрузки превышает мои ожидания. Поэтому я планирую использовать существующую функцию set_page_load_timeout (time_to_wait), но оказывается, что вызов driver.get () больше не работает.

Я написал простую программу ниже и решил проблему.

from selenium import webdriver
from selenium.common.exceptions import TimeoutException

import time



driver = webdriver.Chrome()
time.sleep(5)

driver.set_page_load_timeout(2)

try:
    driver.get("https://aws.amazon.com/")
except TimeoutException as e:
    print str(e)

driver.set_page_load_timeout(86400)

time.sleep(5)

print "open page"
driver.get("https://aws.amazon.com/")
print "page loaded"


Информация об окружающей среде:
хром = 67.0.3396.99

chromedriver = 2.40.565386 (45a059dc425e08165f9a10324bd1380cc13ca363), платформа = Mac OS X 10.13.4 x86_64

Селен Версия: 3.12.0

или см .: окружающая среда

1 Ответ

0 голосов
/ 27 июня 2018

То, что вы видите, - это печальная ситуация, когда get / navigation истекает время ожидания, когда соединение не стабильно, поэтому вы не можете снова нормально работать в браузере.

Единственный обходной путь, который существует на данный момент, - это отключение pageLoadStrategy, но тогда вы теряете много хороших перков, которые автоматически ждут pageLoad при get и click операциях

from selenium import webdriver
from selenium.common.exceptions import TimeoutException

import time

from selenium.webdriver import DesiredCapabilities

cap = DesiredCapabilities.CHROME
cap["pageLoadStrategy"] = "none"
driver = webdriver.Chrome(desired_capabilities=cap)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...