Установить тайм-аут в Python Splinter Web Crawler
Попытка установить время в Python так же, как в Ruby.
У меня есть ссылка, которая, когда я нажимаю, открывает всплывающее окно, но я не могу получить к нему доступ, потому что это приводит к зависанию скрипта, пока я не убью его. Я уже несколько месяцев пытаюсь получить доступ к этому всплывающему окну, и не радуюсь в ruby watir-webdriver.
Я пытаюсь тайм-аут вызова всплывающего окна, а затем получить доступ к всплывающему окну.
@timeout(3)
try:
b.execute_script("javascript:openMdlWindow('InvestmentDetailOptions.aspx?IDAssetType=','620','600');if(window.document.RetValue == '2'){window.parent.LoadinIframe('InvestmentDetail.aspx?FromMenu=N&IDAssetType=','Investment Details > Full View','false');}")
except Exception, e:
print 'timeout!'
любая помощь будет оценена по достоинству.
2 ответа
Просто попробуйте это:
from splinter import Browser
from selenium.common.exceptions import TimeoutException
b = Browser('firefox')
b.driver.set_page_load_timeout(1)
try:
b.visit('http://www.bbc.com')
except TimeoutException:
pass
print b.html
import signal
from time import sleep
class TimeoutException(Exception):
pass
def do_something_else():
time = 5
sleep(time)
return 'do_something_else has to run for %d seconds' % time
def handler(signum, frame):
raise TimeoutException
def do_something_with_timeout(callback, timeout=3):
signal.signal(signal.SIGALRM, handler)
signal.alarm(timeout)
try:
value = callback()
signal.alarm(0)
return value
except TimeoutException:
pass
signal.signal(signal.SIGALRM, signal.SIG_IGN)
return 'time out'
def main():
print 'hello'
print do_something_with_timeout(do_something_else)
print 'world'
main()