【问题标题】:Is there any way to set the user agent in PhantomJS using PhantomJSDriver?有没有办法使用 PhantomJSDriver 在 PhantomJS 中设置用户代理?
【发布时间】:2015-02-05 21:51:26
【问题描述】:

我一直在寻找一种方法来更改我的 PhantomJSDriver 中的用户代理,但到目前为止还没有找到。 Selenium 文档中有关于 Firefox 驱动程序的简介,但我使用的是 PhantomJS。有什么想法吗?

【问题讨论】:

    标签: java selenium-webdriver phantomjs user-agent


    【解决方案1】:

    用户代理不能直接在驱动上设置。具体来说,驱动程序会查找"phantomjs.page.settings.userAgent" 属性,因此必须在调用驱动程序之前对其进行设置。

    下面是一个最接近 PhantomJS 1.x 功能的用户代理示例:

    String userAgent = "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1";
    System.setProperty("phantomjs.page.settings.userAgent", userAgent);
    

    【讨论】:

    • 下面是我的代码,但对我不起作用: String userAgent = "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1";文件 file = new File("D:/req/phantomjs-2.1.1-windows/bin/phantomjs.exe"); System.setProperty("phantomjs.page.settings.userAgent", userAgent); System.setProperty("phantomjs.binary.path", file.getAbsolutePath()); WebDriver driver = new PhantomJSDriver();
    • @Ninjajava 你当然可以ask a new question 特定于 2.1.1 版本。我帮不了你。
    【解决方案2】:
    DesiredCapabilities dc = new DesiredCapabilities();
    
    dc.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX + "userAgent", 
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36");
    
    new PhantomJSDriver(dc);
    

    【讨论】:

      【解决方案3】:

      对于最近的PhantomJSDriver,更好的方法是通过功能设置用户代理:

      DesiredCapabilities caps = new DesiredCapabilities();
      caps.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0");
      WebDriver driver = new PhantomJSDriver(caps);
      

      通过System.setProperty() 设置属性似乎不再有效。

      【讨论】:

        猜你喜欢
        • 2012-10-28
        • 2018-09-13
        • 2017-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-25
        相关资源
        最近更新 更多