简体   繁体   中英

Selenium - set headers in headless browser

I'm trying to run a simple test on a headless browser. In my sample test when I take a screenshot I just get a blank screen when accessing my staging website, but production websites such as http://www.google.co.uk work correctly. So I guess we need to set headers in order to access our staging?

Does anyone know how to do this on selenium for a headless browser?

The code I have is:

public void testPhantom() throws IOException {
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setJavascriptEnabled(true);
    caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "phantomjs");
    Webdriver driver = new PhantomJSDriver(caps);

    open("https://mywebsite.staging.com/");
    takeAScreenshot("Website");
}

==================================================

UPDATE

Found the solution by reading this post: PhantomJSDriver works for HTTP but not for HTTPS

I have not tested this personally, but the GhostDriver documentation has the following at https://github.com/detro/ghostdriver#what-extra-webdriver-capabilities-ghostdriver-offers

phantomjs.page.customHeaders.HEADER = VALUE - Add extra HTTP Headers when loading a URL

And from the PR: https://github.com/detro/ghostdriver/pull/229 :

PHANTOMJS_PAGE_CUSTOMHEADERS_PREFIX = "phantomjs.page.customHeaders."; //< notice the dot at the end
capabilities.setCapability(PHANTOMJS_PAGE_CUSTOMHEADERS_PREFIX + "Accept-Language", "it-IT");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM