【问题标题】:How to persist Tampermonkey script in Selenium?如何在 Selenium 中保留 Tampermonkey 脚本?
【发布时间】:2019-06-17 04:15:55
【问题描述】:

我想在页面加载之前运行一个JS脚本,所以我把它放在了tampermonkey中。但是驱动程序关闭后脚本不会持续存在。如果我再次运行代码,则保存的脚本不再存在。这是在 python 中运行 selenium 的代码。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

opts = Options()
opts.add_extension("tampermonkey extension.zip")
driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=opts)
driver.get("url")
# Add the JS script in Tampermonkey in the browser manually
driver.close()

【问题讨论】:

  • 使用 Tampermonkey 而不是使用 driver.execute_script() 执行脚本的任何特殊原因?
  • @Dalvenjia 我想在页面加载之前运行一个 JS 脚本。 AFAIK,driver.execute_script() 不保证。

标签: javascript python selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

要在驱动程序“回收”后保留任何扩展程序或特定设置,您唯一的选择是使用您需要的任何内容配置自定义配置文件,并告诉 selenium 使用该配置文件。

在 Chrome 中这是一个很好的答案:How to load default profile in chrome using Python Selenium Webdriver?

在 Firefox 中,Selenium 直接支持:https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.firefox.webdriver 见webdriver.Firefox() 构造函数的第一个参数https://selenium-python.readthedocs.io/api.html#selenium.webdriver.firefox.firefox_profile.FirefoxProfile

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2016-11-23
    相关资源
    最近更新 更多