Seleniumin sivun latauksen aikakatkaisun asettaminen välityspalvelimen takana
Aseta selaimen siirtymisen aikakatkaisu ja erota se elementtien odotuksista, komentosarjojen aikakatkaisuista ja WebDriverin ohjausyhteydestä.
from selenium.common.exceptions import TimeoutException
driver.set_page_load_timeout(30)
try:
driver.get('https://example.com/')
except TimeoutException:
print('The navigation did not finish within its page-load timeout.')
Aseta tämä ennen siirtymistä ajurille, joka on jo määritetty käytettäväksi aiottuun välityspalvelimeen. Pythonin menetelmä ottaa sekunteja.
Valittu sivun latausstrategia määrittää valmistumisen: normal odottaa asiakirjan täyttä valmiutta, kun taas eager käyttää aiempaa tilaa. Kumpikaan ei odota jokaista tulevaa komentosarjan luomaa pyyntöä.
| Raja | Rajattu työ |
|---|---|
| Sivun latauksen aikakatkaisu | Siirtyminen saavuttaa valitun valmistumistilansa |
| Implisiittinen odotus | Yritykset paikantaa elementti |
| Komentosarjan aikakatkaisu | Soveltuva asynkroninen komentosarjan suoritus |
| Suorittajan WebDriver-siirron aikakatkaisu | Erillinen ohjauspyyntö testikomentosarjasta ajurille |
Jos tämä ohjausyhteys jää jumiin tai ottaa sopimattoman välityspalvelimen, selaimen siirtymäbudjetti ei korjaa sitä. Monivaiheiset työnkulut tarvitsevat myös kokonaisbudjetin työlle; valvova suorittaja voi havaita pysähtyneen edistymisen erillään yksittäisestä siirtymisestä.
Säilytä raportoitu ajastin tai siirto virhetietueessa. Pelkkä siirtymisen aikakatkaisu ei erota välityspalvelimen asetusta, kohteen viivettä ja sivun omaa latauskäyttäytymistä.