首页 > 解决方案 > 单击带有硒的 Chrome 扩展程序中的元素

问题描述

我一直在使用 Selenium (Java) 与 Google Chrome 扩展程序交互在互联网上搜索,但未能找到答案。

第一个问题有没有办法启动 chrome 扩展,因为 Selenium 只与 WebView 交互,而不是浏览器中的 chrome 扩展按钮?

我尝试了这种方法“chrome-extension://id/index.html”,但扩展没有按预期启动。我喜欢发现是否有另一种方法可以通过 selenium 启动 chrome 扩展

第二个问题我正在尝试使用 Selenium webdriver 单击 chrome 扩展中的元素。我该怎么做 ?我尝试了 driver.CurrentWindowHandle ,但它没有检测到 chrome 扩展。

谢谢

标签: seleniumgoogle-chrome-extension

解决方案


下面是 pyautogui 的解决方案(类似于java 中的autoit - 因此您也可以为java扩展相同的解决方案)。

前提:

将扩展图像保存在项目文件夹中(在我的示例中,我将其保存在“autogui_ref_snaps”文件夹下,名称为“capture_full_screenshot.png”

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")

如果您正在加载一个扩展并且它在隐身模式下不可用,那么请按照我在此处的回答来启用它。


推荐阅读