我一直在互联网上搜索使用Selenium (Java)与Google Chrome扩展交互,但还没有能够找到答案。
第一个问题是,有没有办法启动chrome扩展,因为Selenium只与WebView交互,而不是在浏览器的chrome扩展按钮上交互?
我尝试了这个方法"chrome- extension ://id/index.html“,但是扩展没有像预期的那样启动。我喜欢寻找是否有通过selenium启动chrome扩展的另一种方法。
第二个问题,我正在尝试使用Selenium webdriver单击chrome扩展中的元素。我该怎么做呢?我尝试了driver.CurrentWindowHandle,但它没有检测到chrome扩展。
谢谢
发布于 2019-06-05 07:41:22
下面是pyautogui的解决方案(类似于java中的autoit -因此您可以将相同的解决方案扩展到java或)。
Pre-Condition:
将扩展图像保存在项目文件夹中(在我的示例中,我将其保存在名为"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中的回答来启用它。
发布于 2020-07-30 14:54:58
尝试使用此JsExecutor方法单击扩展:
driver.execute_script("window.postMessage('clicked_browser_action', '*')")
https://stackoverflow.com/questions/53172127
复制相似问题