等待XHR请求完成

2024-09-28 16:58:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用wait-untillambda driver: driver.execute_script("return jQuery.active == 0")确保页面加载并完成ajax调用。在

但是当我点击其中一个按钮时,我看到网络日志中正在进行XHR调用,但是window.jQuery显示了{},所以我不能使用上面的命令。在

我怎样才能等到XHR调用结束或得到响应。在

WebDriverWait(driver, 30).until(lambda driver: driver.execute_script("return jQuery.active == 0")

Tags: 命令executereturndriverscriptajax页面jquery
1条回答
网友
1楼 · 发布于 2024-09-28 16:58:46

您可以通过设置ajaxasync:false等到xhr完成。在

要使用ajax,必须有jQuery库,然后它才能工作

示例:

$.ajax({
    url : "/submit/checkuser/",
    type : "get",
    async: false,
    success : function(userStatus) {
       if (userStatus == 'Disabled') { // check if user if disabled                    
       } else if (userStatus == 'Deleted') { // check if user if deleted
       } else {
       };
    },
    error: function() {
       connectionError();
    }
 });

这个ajax是asyc false,因此它完成了它的执行并移动到下一个函数

对于python selenium,请参考下面的url

webdriver wait for ajax request in python

相关问题 更多 >