Próba znalezienia dobrego sposobu na ustawienie maksymalnego czasu opóźnienia wykonywania polecenia w Selenium Python WebDriver. Idealnie byłoby coś takiego:Jak ustawić domyślny limit czasu Selenium Python WebDriver?
my_driver = get_my_driver()
my_driver.set_timeout(30) # seconds
my_driver.get('http://www.example.com') # stops/throws exception when time is over 30 seconds
będzie działać. Znalazłem .implicitly_wait(30)
, ale nie jestem pewien, czy powoduje pożądane zachowanie.
Jeśli jest to przydatne, w szczególności korzystamy z WebDriver dla przeglądarki Firefox.
EDIT
Zgodnie użytkownika @ Amey odpowiedzi, to może być przydatne:
ff = webdriver.Firefox()
ff.implicitly_wait(10) # seconds
ff.get("http://somedomain/url_that_delays_loading")
myDynamicElement = ff.find_element_by_id("myDynamicElement")
Jednak to nie jest dla mnie jasne, czy domniemane oczekiwania dotyczy zarówno get
(która jest pożądana funkcjonalność) i do find_element_by_id
.
Dziękuję bardzo!
musiałem spojrzeć na kodzie źródłowym. Jest niejasne dla wiązania Pythona. Ale dla C# 'ImplicitlyWait' działa tylko dla' FindElement/FindElements' (to samo dla Javy). Źródło: [1] (https://code.google.com/p/selenium/source/browse/dotnet/src/WebDriver/ITimeouts.cs#48) [2] (https://code.google.com/ p/selen/problemy/szczegóły? id = 5092) –
Dzięki. Zobacz moją odpowiedź poniżej, jeśli jesteś zainteresowany. –