javascript-获取网页中发生的网络通话次数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-获取网页中发生的网络通话次数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1855字,纯文字阅读大概需要3分钟。
内容图文
![javascript-获取网页中发生的网络通话次数](/upload/InfoBanner/zyjiaocheng/686/f041c335a75f4bb8a45278933e937432.jpg)
因此,基本上我正在尝试使用硒设计一种通用方法,该方法等待所有后台网络调用完成(包括任何Ajax,Angular,API调用).我知道有一种方法可以使用JQuery.active获取活动的ajax数量,但这仅在应用程序基于JQuery框架构建时有效.而且,我想要等待所有网络调用完成的东西,而不是仅针对Ajax的东西.
所以在这里,我试图获取当前在后台发生的网络呼叫数量,并等待其为零.
但是,这是我的处理方法,欢迎任何新的想法或建议.
解决方法:
下面是一个示例,用于等待Chrome没有等待处理的Ajax请求:
from selenium import webdriver
from selenium.webdriver.remote.webdriver import WebDriver
from selenium.webdriver.support.ui import WebDriverWait
import json
def send_chrome(driver, cmd, params={}) :
resource = "/session/%s/chromium/send_command_and_get_result" % driver.session_id
url = driver.command_executor._url + resource
body = json.dumps({'cmd': cmd, 'params': params})
response = driver.command_executor._request('POST', url, body)
if response.get('status'):
raise Exception(response.get('value'))
return response.get('value')
def extend_xhr_chrome(driver) :
send_chrome(driver, "Page.addScriptToEvaluateOnNewDocument", { "source":
"(function(){"
" var send = XMLHttpRequest.prototype.send;"
" var release = function(){ --XMLHttpRequest.active };"
" var onl oadend = function(){ setTimeout(release, 1) };"
" XMLHttpRequest.active = 0;"
" XMLHttpRequest.prototype.send = function() {"
" ++XMLHttpRequest.active;"
" this.addEventListener('loadend', onl oadend, true);"
" send.apply(this, arguments);"
" };"
"})();"
})
def is_xhr_idle_chrome(driver) :
return send_chrome(driver, 'Runtime.evaluate', { 'returnByValue': True, 'expression': "XMLHttpRequest.active == 0"
})['result']['value']
# launch Chrome
driver = webdriver.Chrome()
# extend XMLHttpRequest
extend_xhr_chrome(driver)
driver.get("https://stackoverflow.com")
# wait for no pending request
WebDriverWait(driver, 20, 0.08) .until(is_xhr_idle_chrome)
内容总结
以上是互联网集市为您收集整理的javascript-获取网页中发生的网络通话次数全部内容,希望文章能够帮你解决javascript-获取网页中发生的网络通话次数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。