为了账号安全,请及时绑定邮箱和手机立即绑定

Python selenium execute_script ajax请求不返回响应

Python selenium execute_script ajax请求不返回响应

侃侃尔雅 2022-06-22 16:26:33
我想在网站上执行 ajax 请求,但是当我运行代码时,它打印出“无”而不是结果。from selenium import webdriverurl = "http://google.com"d = webdriver.Chrome()d.get(url)r = d.execute_script("""$.ajax({    url: 'http://google.com',    type: 'POST',    credentials: 'include',    mode: 'cors',    headers: {        //header    },    success: function(result) {        return result;    },    error: function(jqXHR, exception) {        return jqXHR.status;    }});""")print(r)有没有办法让它在继续打印 r 之前等待 ajax 响应。
查看完整描述

2 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

我使用了execute_async_script函数而不是execute_script函数,并且响应通过了。



查看完整回答
反对 回复 2022-06-22
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

您是否尝试过研究如何使用WebDriverWait?


from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

如果您可以在 Ajax 响应时识别元素,则可以执行如下命令:


try:

    element = WebDriverWait(driver, 10).until(

        EC.presence_of_element_located((By.ID, "myDynamicElement"))

    )

finally:

    driver.quit()       

来源:https ://selenium-python.readthedocs.io/waits.html


(感谢之前在我的帖子上发帖的人,帮助我找到了类似于你的解决方案)


查看完整回答
反对 回复 2022-06-22
  • 2 回答
  • 0 关注
  • 286 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信