Selenium 可以监控 XHR 请求吗

问题描述 投票:0回答:2

Selenium 中是否有任何方法可以监控来自应用程序的 XHR 请求。我想创建一个测试,其中测试单击按钮,然后检查是否发出了正确的 Ajax 请求。

编辑,如果重要的话,我正在使用 PHP Unit。

ajax selenium
2个回答
7
投票

您可以使用 Selenium 捕获网络流量,然后尝试获取您需要的内容

Selenium s = new DefaultSelenium(...);
s.start("captureNetworkTraffic=true");
s.open("http://www.google.com");
String traffic = s.captureNetworkTraffic("json");

然后通过在流量中找到您想要的内容来进行断言。


0
投票

尝试这个Python代码,它对我有用。

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    chrome_options = Options()
    chrome_options.set_capability('goog:loggingPrefs', {'performance': 'ALL'})
    driver=webdriver.Chrome(options=chrome_options)
    perfs = driver.get_log('performance')
    for log_data in perfs:
        message_ = log_data['message']
        try:
            log_json = json.loads(message_)
            log = log_json['message']
        except:pass
        if log['method'] != 'Network.responseReceived':continue
        if log['params']['type']!='Fetch' or log['params']['type']!='XHR':continue
        response = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': log['params']['requestId']})
        
© www.soinside.com 2019 - 2024. All rights reserved.