要获取XHR(XMLHttpRequest)的payload值,您可以使用Selenium中的WebDriverWait和ExpectedConditions方法来等待XHR请求并获取其响应。
以下是使用Python和Selenium获取XHR payload值的示例代码:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
# 启动浏览器并打开网页
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
# 等待XHR请求并获取响应
wait = WebDriverWait(driver, 10)
xhr = wait.until(EC.presence_of_element_located((By.XPATH, '//[@id="some-id"]')))
xhr_payload = xhr.get_attribute('value')
print(xhr_payload)
# 关闭浏览器
driver.quit()
在这个例子中,我们首先打开一个网页,然后等待包含XHR响应的元素出现。然后,我们使用get_attribute方法来获取该元素的“value”属性,这是XHR响应的payload。
要使用这个代码,您需要替换“https://www.baidu.com”和“//[@id="some-id"]”为您自己的网址和XHR元素的XPATH表达式。
不过我更建议使用微软的playwright。非常好使,兼容性更好。
以下是使用Playwright获取XHR payload值的示例代码:
from playwright.sync_api import Playwright, sync_playwright
def get_xhr_payload(playwright: Playwright, url: str) -> str:
with playwright.chromium.launch(headless=True) as browser:
withbrowser.new_context() as context:
page = context.new_page()
responses = []
def response_callback(response):
if url in response.url:
responses.append(response)
page.route(url, response_callback)
#打开网页并等待XHR请求完成
page.goto('https://example.com')
page.wait_for_load_state('networkidle')
# 获取XHR响应的payload
xhr_payload = responses[0].body()
return xhr_payload
# 使用playwright获取XHR响应的payload
with sync_playwright() as playwright:
xhr_payload = get_xhr_payload(playwright, 'https://example.com/api')
print(xhr_payload)
在这个例子中,我们使用Playwright启动了一个Chromium浏览器,打开了一个新页面,并注册了一个回调函数来捕获XHR响应。然后,我们等待页面的网络空闲状态,并获取了第一个匹配指定URL的XHR响应的payload。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】
版权归原作者 程序员Baby~ 所有, 如有侵权,请联系我们删除。