def navigate(self, n_url): Logger.info("浏览器正在跳转页面:%s" % n_url) self.driver.get(n_url) if not self.wait_until_complete(): return False self.init_time = self.timing(Config.WebConfig().Timing.InitTime) self.redirect_time = self.timing( Config.WebConfig().Timing.RedirectTime) self.appcache_time = self.timing( Config.WebConfig().Timing.AppCacheTime) self.dns_time = self.timing(Config.WebConfig().Timing.DnsTime) self.tcp_time = self.timing(Config.WebConfig().Timing.TcpTime) self.request_time = self.timing(Config.WebConfig().Timing.RequestTime) self.response_time = self.timing( Config.WebConfig().Timing.ResponseTime) self.processing_time = self.timing( Config.WebConfig().Timing.ProcessingTime) self.onload_time = self.timing(Config.WebConfig().Timing.OnloadTime) self.total_time = self.timing(Config.WebConfig().Timing.TotalTime) self.timing_detail() return True
def wait_until_complete(self, interval=500, timeout=10000): complete_js = 'return document.readyState == "complete"' start = 0 while start < timeout: # 等待DOM状态为Complete且页面总耗时大于0 state = self.driver.execute_script(complete_js) and self.timing( Config.WebConfig().Timing.TotalTime) > 0 if state: time.sleep(interval / 1000.0) return True start += interval time.sleep(interval / 1000.0) return False