从Selenium WebDriver运行Chrome扩展程序
我知道如何在Selenium Webdriver中加载Chrome扩展程序。但是我没有看到任何描述如何从Selenium
chrome扩展的帖子/博客。
我需要明确地使chrome扩展程序运行/使其从selenium中执行其功能。例如,我想使用带有Selenium
Webdriver的扩展程序清除Chrome浏览器的缓存。
我可以先做吗?还是Selenium WebDriver仅将扩展加载到浏览器实例中并留在浏览器实例中对我有帮助?
回答:
启用Chrome扩展程序后,该扩展程序已经“运行”(至少是其后台/事件页面)。没有API以编程方式单击该按钮。
如果您想不费力地使用现有扩展的功能,则建议下载扩展的源代码,并在扩展的源代码中插入其他事件侦听器。
- 获取扩展程序的源(例如,使用Chrome扩展程序源查看器,也称为CRX Viewer)。
- 解压缩该zip文件。
创建一个新的HTML文件
example_name.html
,并使其包含:<script src="example_name.js"></script>
创建一个新的脚本文件,
example_name.js
并使其调用扩展程序的功能,例如:chrome.runtime.getBackgroundPage(function(bg) {
// Relevant function at the background page. In your specific example:
bg.clearCache();
});
将以前的HTML文件添加到
web_accessible_resources
清单文件中。- 再次打包扩展,例如使用
chrome://extensions
或使用GUIchrome.exe --pack-extension=directorycontainingextension
创建完成后directorycontainingextension.crx
,将此crx文件加载到Chrome中以了解扩展程序ID。如果您不知道如何在Chrome中加载crx文件,只需访问https://robwu.nl/crxviewer/,选择crx文件,打开F12开发人员工具,然后将32个字符的字符串复制到“计算的扩展ID”
:[此处为扩展名ID]”。
(从ChromeDriver
2.11开始,您可以压缩扩展名而不是将其打包为CRX文件,并通过设置"key"
属性将扩展名ID硬编码在清单文件中(此"key"
属性也由CRX
Viewer打印到F12控制台)。
修改扩展名后,您将拥有一个具有与原始扩展名相同功能的扩展名,以及一个附加的HTML页面。 。
完成此操作后,“运行”扩展程序就像chrome-extension://[EXTENSION ID
HERE]/example_name.html在新选项卡中打开一样容易。
如果您不喜欢这些新选项卡,则还可以使用chrome.webRequest
或chrome.declarativeWebRequest
API拦截自定义URL,并在页面请求此资源时激活所需的功能。然后,您只需将URL放在中<img>
即可激活扩展程序的功能。
以上是 从Selenium WebDriver运行Chrome扩展程序 的全部内容, 来源链接: utcz.com/qa/413513.html