我无法为以无头模式运行的ChromeDriver设置Cookie

时间:2019-06-17 14:53:08

标签: java selenium selenium-chromedriver

当我在无头模式下使用ChromeDriver运行硒测试时,addCookie方法调用会导致异常;测试全部在正常模式下工作

我的Chrome浏览器版本为75.0.3770.90,ChromeDriver版本为75.0.3770.8。操作系统是Mac OS X 10.14.5

我得到的异常是:

while

导致该问题的代码是:

// Guess number game

// NOTE! Works perfect if I use a constant number instead of Random.  
Random rnd = new Random();
int number = rnd.Next(1, 100);
int userInput = 0;
bool isPlaying = true; 

while (isPlaying) {
    try {
        userInput = Int32.Parse(Console.ReadLine());
    }
    catch (FormatException e)
    {
        Console.WriteLine(e.Message);               
    }

    if (userInput < number) {
        Console.WriteLine("more");
    } else if (userInput > number) {
        Console.WriteLine("less");
    } else {
        isPlaying = false;
    }
}

Console.WriteLine("You win");

2 个答案:

答案 0 :(得分:1)

可能您在导航到站点之前添加了cookie。您应该先导航到您的网址

driver.get("yourWebPage");

并且仅在此之后添加cookie

driver.manage().addCookie(cookie);

为了更好地分析问题所在,如果以上方法无济于事,则必须添加程序的更多代码。

也可能是this的副本。

答案 1 :(得分:0)

在无头模式下,您必须在页面url中具有协议,而在正常模式下,Web驱动程序默认为http。因此,一旦我们将“ localhost:8080 / path”替换为“ http://localhost:8080/path”,它就会起作用。