Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用selenium或任何其他库与chrome中的开发人员工具交互_Selenium - Fatal编程技术网

如何使用selenium或任何其他库与chrome中的开发人员工具交互

如何使用selenium或任何其他库与chrome中的开发人员工具交互,selenium,Selenium,我试图阅读chrome中开发者工具的网络和控制台标签,或者与之交互。你能指导我如何做到这一点吗 谢谢简短的回答是不。 . 正如提供的链接所述,您无法直接访问chrome开发者工具 但是,如果您对访问浏览器控制台和网络选项卡的内容感兴趣,selenium为您提供了一种方法 System.setProperty("webdriver.chrome.driver", getChromeDriverLocation()); LoggingPreferences loggingprefs = new L

我试图阅读chrome中开发者工具的网络和控制台标签,或者与之交互。你能指导我如何做到这一点吗

谢谢

简短的回答是不。 . 正如提供的链接所述,您无法直接访问chrome开发者工具

但是,如果您对访问浏览器控制台和网络选项卡的内容感兴趣,selenium为您提供了一种方法

System.setProperty("webdriver.chrome.driver", getChromeDriverLocation());

LoggingPreferences loggingprefs = new LoggingPreferences();
loggingprefs.enable(LogType.BROWSER, Level.WARNING);
loggingprefs.enable(LogType.PERFORMANCE, Level.WARNING);

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(CapabilityType.LOGGING_PREFS, loggingprefs);

driver = new ChromeDriver(capabilities);
然后,您可以根据需要打印日志

LogEntries logEntries = SeleniumBaseTest.getWebDriver().manage().logs()
            .get(org.openqa.selenium.logging.LogType.BROWSER);
for (LogEntry entry : logEntries) {
    System.out.println((String.format("%s %s %s\n", new Date(entry.getTimestamp()), entry.getLevel(),
                entry.getMessage())));
}
LogType.BROWSER
将为您提供
浏览器控制台
Logtype.perfroman
将为您提供
网络选项卡

访问“网络”选项卡的其他方法是使用浏览器代理记录交易。

在Python中,Pychrome作为DevTools协议查看器的接口运行良好

下面是一个示例,我将Selenium与Pycrome混合用于主请求,因为我希望在不下载两次的情况下获得图像

import base64
import pychrome
def save_image(file_content, file_name):
    try:
       file_content=base64.b64decode(file_content)
       with open("C:\\Crawler\\temp\\" + file_name,"wb") as f:
            f.write(file_content)
    except Exception as e:
       print(str(e))

def response_received(requestId, loaderId, timestamp, type, response, frameId):
    if type == 'Image':
        url = response.get('url')
        print(f"Image loaded: {url}")
        response_body = tab.Network.getResponseBody(requestId=requestId)
        file_name = url.split('/')[-1].split('?')[0]
        if file_name:
            save_image(response_body['body'], file_name)


tab.Network.responseReceived = response_received

# start the tab 
tab.start()

# call method
tab.Network.enable()

# get request to target the site selenium 
driver.get("https://www.realtor.com/ads/forsale/TMAI112283AAAA")

# wait for loading
tab.wait(50)
查看我的帖子: