首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单击Chrome Extension with selenium中的元素

单击Chrome Extension with selenium中的元素
EN

Stack Overflow用户
提问于 2018-11-06 20:40:30
回答 2查看 2.2K关注 0票数 1

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

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

我尝试了这个方法"chrome- extension ://id/index.html“,但是扩展没有像预期的那样启动。我喜欢寻找是否有通过selenium启动chrome扩展的另一种方法。

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

谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-06-05 07:41:22

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

Pre-Condition:

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

Python:

所需的导入

代码语言:javascript
运行
复制
from selenium import webdriver
from selenium.webdriver import ChromeOptions
from Common_Methods.GenericMethods import *
import pyautogui  #<== need this to click on extension

脚本:

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2020-07-30 14:54:58

尝试使用此JsExecutor方法单击扩展:

代码语言:javascript
运行
复制
driver.execute_script("window.postMessage('clicked_browser_action', '*')")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53172127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档