如何在 robotframework 中使用 seleniumlibrary 启用 adblock

How to enable adblock with seleniumlibrary in robotframework

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

到目前为止,我已经创建了一个 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?

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

有人可以帮忙吗?

您需要创建一个新的浏览器配置文件,并首先手动安装 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~~~

创建 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?