【问题标题】:How to enable adblock with seleniumlibrary in robotframework如何在机器人框架中使用 seleniumlibrary 启用广告拦截
【发布时间】:2020-03-17 22:44:22
【问题描述】:

我想在执行机器人框架测试期间在 speedtest.net 上启用 uBlock Origin 插件作为广告,因为广告会完全危及测试结果。

到目前为止,我已经创建了一个 Python 脚本来创建带有扩展名的配置文件

from selenium import webdriver

class WebDriverProfile:
    def create_profile_with_adblock(self, path):
        fp =webdriver.FirefoxProfile()
        fp.add_extension(extension='d:/pathtoextension/ublock_origin-1.24.0-an+fx.xpi')
        fp.set_preference("browser.download.folderList",2)
        fp.set_preference("browser.download.manager.showWhenStarting",False)
        fp.set_preference("browser.download.dir",path)
        fp.set_preference("browser.helperApps.neverAsk.saveToDisk", 'application/csv')
        fp.update_preferences()
        return fp.path

还有以下机器人脚本来调用该函数:

*** settings ***
Library         Selenium2Library
library         Process
library         Dialogs
Library         WebDriverProfile.py

*** Variables ***
${URL}           https://speedtest.net

*** Test Cases ***
Test with speedtest.net
    ${FF_PROFILE}=          Create Profile With Adblock         ${TEMPDIR}\\testdirff
    Open Browser            ${URL}                              browser=ff    ff_profile_dir=${FF_PROFILE}
    Execute Manual Step     Is adblocker enabled?

浏览器会打开,但不会出现广告拦截器。

有人可以帮忙吗?

【问题讨论】:

    标签: selenium firefox webdriver firefox-addon robotframework


    【解决方案1】:

    创建 webdriver 而不是 firefox 配置文件并安装插件。

    Python 扩展:

    from selenium import webdriver
    
    class WebDriverProfile:
        def create_web_driver_with_addons(self):
            extension_location='d:\\path_to_adblock\\ublock_origin-1.24.0-an+fx.xpi'
            browser = webdriver.Firefox()
            browser.install_addon(extension_location, temporary=True)
            browser.get('http://speedtest.net')
    

    机器人脚本:

    *** settings ***
    Library         Selenium2Library
    library         Process
    library         Dialogs
    Library         WebDriverProfile.py
    
    *** Variables ***
    ${URL}           https://speedtest.net
    
    *** Test Cases ***
    Test with speedtest.net
        create web driver with addons
        Execute Manual Step     Is adblocker enabled?
    

    【讨论】:

      【解决方案2】:

      您需要使用手动安装的 adblock 创建一个新的浏览器配置文件。

      现在,通过以下任何命令调用上述相应的配置文件。

      Open Browser    http://example.com  Firefox ff_profile_dir=/path/to/profile # Using profile from disk
      Open Browser    http://example.com  Firefox ff_profile_dir=${FirefoxProfile_instance}   # Using instance of FirefoxProfile
      Open Browser    http://example.com  Firefox ff_profile_dir=set_preference("key", "value");set_preference("other", "setting")    # Defining profile using FirefoxProfile mehtods~~~
      

      【讨论】:

      • 我已经尝试过第一个,您可以在其中指定 FF 配置文件的路径。 FF 用 uBlock 启动,但只有 1 秒,在插件被禁用后。
      • 您是否创建了安装了 adblock 的新 FF 配置文件?在运行射频线之前?
      • 是的,它是之前创建的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-15
      • 2019-09-23
      • 1970-01-01
      • 2019-06-22
      • 1970-01-01
      • 2018-10-20
      • 2023-01-17
      相关资源
      最近更新 更多