Selenium Python Load Page and Script (Firefox and IE)

后端 未结 1 2058
忘掉有多难
忘掉有多难 2021-01-26 18:34

I don\'t really have idea about that so I\'d like you to give me some advice if you can.

Generally when I use Selenium I try to search the element that I\'m interested i

1条回答
  •  失恋的感觉
    2021-01-26 19:12

    You could check the underlying javascript framework for active connections. When there are no active connections you could then assume the page is finished loading.

    That, however, requires that you either know what framework the page uses, or that you must systematically check for different frameworks and then check for connections.

    def get_js_framework(driver):
        frameworks = [
            'return jQuery.active',
            'return Ajax.activeRequestCount',
            'return dojo.io.XMLHTTPTransport.inFlight.length'
        ]
    
        for f in frameworks:
            try:
                driver.execute_script(f)
            except Exception:
                logging.debug("{0} didn't work, trying next js framework".format(f))
                continue
            else:
                return f
        else:
            return None
    
    
    def load_page(driver, link):
        timeout = 5
        begin = time.time()
    
        driver.get(link)
        js = _get_js_framework(driver)
    
        if js:
            while driver.execute_script(js) and time.time() < begin + timeout:
                time.sleep(0.25)
        else:
            time.sleep(timeout)
    

    0 讨论(0)
提交回复
热议问题