我试图自动化一个网站,我需要找到哪个JS文件在哪个特定URL上调用。 是否有任何代码来获取网页使用/调用的JS文件的名称。 通常我需要开发人员工具中列出的JS文件的名称>网络> JS选项卡。 Image of what I want to fetch。 (Stackoverflow主页的示例图片)。
我尝试过代码
DesiredCapabilities d = DesiredCapabilities.chrome();
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
d.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
WebDriver driver = new ChromeDriver(d);
driver.get("https://stackoverflow.com");
LogEntries les = driver.manage().logs().get(LogType.SERVER);
for (LogEntry le : les) {
System.out.println(le.getMessage());
}
但是这段代码提供了我不需要的很多细节。有没有办法只获取JS文件的名称?
答案 0 :(得分:2)
您可以通过JavaScript从Resource Timing API获取。请参阅下面的示例:
ArrayList<String> results = (ArrayList<String>) ((JavascriptExecutor)driver).executeScript(
"return window.performance.getEntries().filter(e=>e.initiatorType==='script').map(item=>item.name);");
results.forEach((url)->System.out.println(url));