Java 确定与Selenium一起使用的CSS框架

Java 确定与Selenium一起使用的CSS框架,java,css,selenium,frameworks,Java,Css,Selenium,Frameworks,我正在编写一个程序,它可以在各种网页上爬行,并使用Selenium进行一些测试。 现在我想知道这些网站上使用了哪些CSS框架,以获得一些统计数据。 现在,我只需使用FireFox Webdriver检查页面中是否有链接到特定框架名称的.css文件: Iterator divWebElementIteratorCSS=webDriver.findElements(By.xpath(“//link[@rel='stylesheet'])).Iterator() 然后我检查找到的.css文件的名称是否

我正在编写一个程序,它可以在各种网页上爬行,并使用Selenium进行一些测试。 现在我想知道这些网站上使用了哪些CSS框架,以获得一些统计数据。 现在,我只需使用FireFox Webdriver检查页面中是否有链接到特定框架名称的.css文件:
Iterator divWebElementIteratorCSS=webDriver.findElements(By.xpath(“//link[@rel='stylesheet'])).Iterator()

然后我检查找到的.css文件的名称是否包含我要检查的css框架之一的名称:

if ( src.contains( frameWorkName ) && cssFrameWorks.get( frameWorkName ) == false ) {
    result.addAttribute("Framework", "STRING", frameWorkName);
    result.setPercent( 100 );
    result.setSuccessful( true );
    cssFrameWorks.put( frameWorkName, true );
}
HashMapFrameworkName包含我感兴趣的所有框架的名称


现在我的问题是:如果站点管理员重命名了框架的.css文件,那么我的测试就不起作用了!是否有一种安全的方法来检查这一点,即使.css有不同的名称,这种方法仍然有效

我不知道有什么可靠的方法可以确定网站中使用了哪些CSS(或JavaScript)框架

如果幸运的话,管理员将使用一个全局URL(如

当人们开始重命名文件时,您可以尝试下载CSS文件并对其进行指纹识别(创建校验和)

当然,当人们更改这些文件时,这将失败。这可以自动发生;是一个将所有JavaScript和CSS资源自动编译成一个大文件的框架


我也有点担心你为什么需要这些信息。不要试图找出正在使用的框架(以及版本),而是寻找正在应用的实际CSS样式,这些样式可能会影响您的测试。

我认为@Aarondigula的答案非常清楚

不过,我可以想到的另一种选择是,当您迭代这些内容时,先查看css文件,然后在开始时快速浏览文档。例如,CSS文件可能包含

/*  CSS Framework vX.X
 *  Author: Some Author
 *  License:
 *    Some ridiculously long license
 */

这将缓解文件名更改问题。

什么是“CSS框架”?你有一个例子吗?比如Bootstrap、基金会或YAML!你为什么需要知道这些信息?它对你有什么用,不管他们使用YAML还是其他什么?我的老板想知道一个统计数据,哪些框架被我们的合作伙伴用于响应性设计支持(有很多方法可以手动或直接请求)。