如何使用热键加载扩展到webdriver?

时间:2016-09-08 13:15:32

标签: python-3.x selenium-webdriver google-chrome-extension selenium-chromedriver hotkeys


我想通过Chromedriver在Chrome中通过热键启动扩展程序(解压缩)。我无法在正在运行的ChromeDriver实例中使用热键/短按键。有人可以告诉我,怎么做? 这是到目前为止的代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("load-extension=C:\\Users\\...\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Extensions\\blablabla\\4.3.25_0")
browser = webdriver.Chrome(chrome_options=chrome_options)

这会带有扩展程序的新Chrome,但不包含原始热键。我的想法是添加一些Option或Capability或prefs,但还没有找到类似的东西。
如果我可以创建新配置文件,安装扩展程序,设置热键,并使用此配置文件启动Chrome,也可以,但我也需要这些配置文件以编程方式创建步骤。
感谢您的任何反馈!

1 个答案:

答案 0 :(得分:1)

这解决了这个问题(我删除了任何没有使用WebDriver的命令,例如pyautogui.hotkey等):

chrome_options = Options()
chrome_options.add_argument("load-extension=" + ext_folder)
browser = webdriver.Chrome(chrome_options = chrome_options)
browser.get('chrome://extensions-frame/')
browser.find_element(By.XPATH, "//a[@class='extension-commands-config']").click()
browser.find_element(By.XPATH, "//span[@class='command-shortcut-text']").send_keys(Keys.CONTROL + "m")
browser.find_element(By.ID, "extension-commands-dismiss").click()

browser.find_element(By.TAG_NAME, "body").send_keys(Keys.CONTROL + "m")