Selenium:Selenium自动设置referer Header

时间:2012-03-07 07:13:23

标签: selenium selenium-rc selenium-webdriver

Selenium:Selenium自动设置referer Header

我正在使用含铬的硒RC

我的问题是,每次selenium打开一个chrome实例时,它会将HTTP referer Header设置为此值 “名”:“引荐” “值”: “HTTPS:?//localhost/selenium-server/core/RemoteRunner.html的sessionId = 534b84df760b4422940a90dadd1bd60c&安培;多窗口=真安培;的baseUrl = HTTPS%3A%2F%2Flocalhost%2Fems&安培; debugMode =假”

我的Web应用程序检查referer是否包含有效链接(链接是Web应用程序的一部分),如果referer包含任何其他链接,则显示错误。

由于这个原因,我无法使用selenium

登录我的网络应用程序

有没有办法在没有“Referer”标题或Referer为空白的情况下启动selenium实例

1 个答案:

答案 0 :(得分:0)

根据this页面存在此Chrome开关

--no-referrers  Don't send HTTP-Referer headers.

在Java中我会这样做:

ChromeDriverService service = ChromeDriverService.createDefaultService();
File file = new File(RegulationUI.class.getResource("/chromedriver.exe").toURI());
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, file.getAbsolutePath());
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized"); //Chrome starts always maximized
options.addArguments("--no-referrers"); // no HTTP referer will be send
WebDriver driver = new ChromeDriver(service,options); //starts Chrome
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); //imlpicitly wait 30s for fage to load

修改 我完全错过了Selenium-RC的事情。阅读javadoc我意识到可以有一种方法:

DefaultSelenium selenium = new DefaultSelenium("ServerHost", 8080, "path/to/chrome/chrome.exe --no-referrers", "start-url.com");

无论如何我从未尝试过,所以我不知道它是否会起作用

<强> EDIT2

我告诉你,你可以将String发送到start()命令。因此,如果以上不起作用,您也可以尝试:

 selenium.start("--no-referrers");