【问题标题】:Selenium : Selenium Automatically sets referer HeaderSelenium : Selenium 自动设置referer Header
【发布时间】:2012-03-07 21:35:19
【问题描述】:

Selenium : Selenium 自动设置referer Header

我正在使用 selenium RC 和 chrome

我的问题是,每次 selenium 打开一个 chrome 实例时,它都会将 HTTP referer Header 设置为这个值 "name":"推荐人", "值":"https://localhost/selenium-server/core/RemoteRunner.html?sessionId=534b84df760b4422940a90dadd1bd60c&multiWindow=true&baseUrl=https%3A%2F%2Flocalhost%2Fems&debugMode=false"

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

因此,我无法使用 selenium 登录我的 Web 应用程序

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

【问题讨论】:

    标签: selenium selenium-rc selenium-webdriver


    【解决方案1】:

    根据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

    我发现,您可以将字符串发送到start() 命令。所以如果上面的方法不行你也可以试试:

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

    【讨论】:

    • 谢谢,但我正在使用 selenium RC,你知道如何在 Selenium RC 中执行此操作
    • 啊!错过了!我不喜欢 Selenium RC,对此感到抱歉。也许如果你告诉我你是如何初始化浏览器的,我可以找到一些东西......
    • 我在 javadoc 中找到了一些东西,希望对您有所帮助
    • selenium = new DefaultSelenium("localhost",4444,*googlechrome, start-url); selenium.start();在搜索此问题时,我发现在 start() 中我们可以浏览器命令,我尝试过但没有帮助
    • 您可以尝试使用我在编辑中提到的 chrome 二进制文件的填充路径吗?
    猜你喜欢
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 2017-03-04
    • 2021-11-22
    相关资源
    最近更新 更多