我想在网站上执行 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 回答
猛跑小猪
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
(感谢之前在我的帖子上发帖的人,帮助我找到了类似于你的解决方案)
添加回答
举报
0/150
提交
取消