Selenium-rc:有没有办法在不更改 Firefox 配置文件的情况下更改用户代理

发布于 2024-08-26 06:02:44 字数 294 浏览 3 评论 0原文

我想运行更改浏览器发送的 http 请求中的用户代理的测试(如 FF 插件、用户代理切换器所做的那样)。我看到你可以通过使用 FF 配置文件来做到这一点(http://seleniumhq.org/docs/09_webdriver .html)。

有没有办法在测试中做到这一点?类似于函数 addCustomRequestHeader() 设置标头而不是添加它

I want to run tests that change the user-agent in the http request sent from the browser (like the FF add-on, user agent switcher does). I saw you can do it by playing with the FF profile (http://seleniumhq.org/docs/09_webdriver.html).

Is there a way to do it within a test? Something like the function addCustomRequestHeader() that sets a header rather than adding it

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

扮仙女 2024-09-02 06:02:44

您可以插入这样的函数,以便在发出 http 请求之前动态更改用户代理:

function changeuserAgent() {

    var altuserAgentGetter = function () {
        return "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2) Gecko/20100115 <choose your string>";
    };

    if (Object.defineProperty) {
        Object.defineProperty(navigator, "userAgent", {
            get: altuserAgentGetter
        });
    }
    else if (Object.prototype.__defineGetter__) {
        navigator.__defineGetter__("userAgent", altuserAgentGetter);
    } 
}

You could insert a function like this to change the user agent on the fly before you make your http request:

function changeuserAgent() {

    var altuserAgentGetter = function () {
        return "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2) Gecko/20100115 <choose your string>";
    };

    if (Object.defineProperty) {
        Object.defineProperty(navigator, "userAgent", {
            get: altuserAgentGetter
        });
    }
    else if (Object.prototype.__defineGetter__) {
        navigator.__defineGetter__("userAgent", altuserAgentGetter);
    } 
}
看海 2024-09-02 06:02:44

如果您在 Java 中使用 Selenium 2 Web 驱动程序,则可以创建 Firefox 配置文件并将代理字符串设置为配置文件中的首选项。然后使用配置文件创建 WebDriver 对象:

    FirefoxProfile profile = new FirefoxProfile();
    profile.setPreference("general.useragent.override", "Mozilla/5.0 (iPad; U; CPU OS 4_3 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8F191 Safari/6533.18.5");
    WebDriver driver = new FirefoxDriver(profile);

有关更多信息和源代码示例,请参阅 Firefox 驱动程序 的 Selenium Web 驱动程序文档,网址为 http://seleniumhq.org/docs/03_webdriver.html#firefox-driver

If you're using the Selenium 2 Web Driver in Java, you can create a Firefox profile and set the agent string as a preference in the profile. Then use the profile to create the WebDriver object:

    FirefoxProfile profile = new FirefoxProfile();
    profile.setPreference("general.useragent.override", "Mozilla/5.0 (iPad; U; CPU OS 4_3 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8F191 Safari/6533.18.5");
    WebDriver driver = new FirefoxDriver(profile);

For slightly more information and source code examples, see the Selenium Web Driver documentation for Firefox Driver at http://seleniumhq.org/docs/03_webdriver.html#firefox-driver.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文