我正在使用Selenium Web Driver构建自动化测试套件。在某个时刻,我必须通过打开或关闭 Chrome扩展程序来测试页面的工作方式。您可以将其想象为单击Adblock扩展程序,然后单击“禁用此站点”。然后,再次打开它。 我在互联网上搜索,只使用Selenium 无法实现这一点。 你知道我怎么能做这样的动作? (理想情况下来自Java)
答案 0 :(得分:1)
关于blazemeter是一个很好的描述,可能也适合你:
答案 1 :(得分:1)
一种可能的解决方案是使用Chrome options并管理设置为WebDriver的扩展。快速举例:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);
如果你想在一次测试中打开和关闭它们,你可以产生两个独立的驱动程序并比较结果,因为我不确定在这种情况下会话重用是否可以完成工作。
答案 2 :(得分:1)
下面是使用pyautogui的Python解决方案(我相信它与Java中的 autoit 类似-因此您也可以扩展 java 的相同解决方案)。
>前提条件:
将扩展程序图像保存在项目文件夹中(我在示例中以“ capture_full_screenshot.png”名称将其保存在“ autogui_ref_snaps”文件夹下
Python:
需要导入
from selenium import webdriver
from selenium.webdriver import ChromeOptions
from Common_Methods.GenericMethods import *
import pyautogui #<== need this to click on extension
脚本:
options = ChromeOptions()
options.add_argument("--load-extension=" + r"C:\Users\supputuri\AppData\Local\Google\Chrome\User Data\Default\Extensions\fdpohaocaechififmbbbbbknoalclacl\5.1_0") #<== loading unpacked extension
driver = webdriver.Chrome(
executable_path=os.path.join(chrome_options=options)
url = "https://google.com/"
driver.get(url)
# get the extension box
extn = pyautogui.locateOnScreen(os.path.join(GenericMethods.get_full_path_to_folder('autogui_ref_snaps') + "/capture_full_screenshot.png"))
# click on extension
pyautogui.click(x=extn[0],y=extn[1],clicks=1,interval=0.0,button="left")
如果您正在加载扩展程序,而该扩展程序在隐身模式下不可用,请按照我在here中的回答将其启用。
答案 3 :(得分:0)
可以使用sikuli(GUI自动化工具)单击浏览器插件。
需要进口:
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;
脚本:
Pattern addon=new Pattern("D:\\My Files\\Addon.jpg"); //image of the addon must be given as a pattern for identifying that on the browser/webpage
Screen s=new Screen();
s.hover(addon);
s.click(addon);
答案 4 :(得分:-1)