【问题标题】:Fetch names of javascripts being used by the web page using Java Selenium WebDriver使用 Java Selenium WebDriver 获取网页正在使用的 javascripts 的名称
【发布时间】:2018-04-05 06:20:58
【问题描述】:

我正在尝试自动化一个网站,我需要在该网站上查找在哪个特定 URL 上调用了哪个 JS 文件。 是否有任何代码可以获取网页正在使用/调用的 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 文件的名称?

【问题讨论】:

  • 如果您需要知道 JS 文件的名称,您可能做错了什么。从自动化的角度来看,代码所在的位置无关紧要,重要的是它按预期工作。

标签: javascript java selenium selenium-webdriver


【解决方案1】:

您可以通过 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));

【讨论】:

  • 有什么方法可以获取 JS 文件的大小吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-13
  • 2016-10-07
  • 1970-01-01
相关资源
最近更新 更多