gpt4 book ai didi

selenium - 如何使用 PhantomJS 在 Geb/Selenium 中设置 cookie

转载 作者:行者123 更新时间:2023-12-04 00:06:18 26 4
gpt4 key购买 nike

如何在 Geb 中设置 cookie?我在给定的示例中遇到了以下错误:

org.openqa.selenium.InvalidCookieDomainException: {"errorMessage":"Can only set Cookies for the current domain"....

.. 我还尝试使用 Cookie Builder 显式设置 cookie 多米诺骨牌,但这只会导致另一个异常:org.openqa.selenium.UnableToSetCookieException: {"errorMessage":"Unable to set Cookie"}

请注意,我曾经在 GebConfig.groovy 文件中有一个 baseURL .. 但我也将其删除了.. 除了 PhantomJS 驱动程序配置之外,配置文件中没有任何设置。

我在 OSX 上使用 PhantomJS 最新版本(1.3.0 jar 和 2.1.1 驱动程序 OSX)。

请注意,出于某种原因,该示例确实可以使用 Chrome Webdriver。

import geb.spock.GebSpec
import org.openqa.selenium.Cookie

class SetCookieIT extends GebSpec {
def "Cookie example"() {
given:
def options = driver.manage()

when:
go "https://www.wikipedia.org/"
then:
!options.getCookieNamed("my-geb-cookie")

when:
options.addCookie(new Cookie("my-geb-cookie", "foobar"))
go "https://www.wikipedia.org/"
then:
title == "Wikipedia"
options.getCookieNamed("my-geb-cookie").value == "foobar"
}
}

最佳答案

维基百科的域名中没有“ie”拼写,“org.com”看起来也很奇怪。也许下次您想提供一个实际上可执行且有意义的示例。 :-7

对我来说这很好用:

package de.scrum_master.stackoverflow

import geb.spock.GebReportingSpec
import org.openqa.selenium.Cookie

class SetCookieIT extends GebReportingSpec {
def "Cookie example"() {
given:
def options = driver.manage()

when:
go "https://www.wikipedia.org/"
then:
!options.getCookieNamed("my-geb-cookie")

when:
options.addCookie(new Cookie("my-geb-cookie", "foobar"))
go "https://www.wikipedia.org/"
then:
title == "Wikipedia"
options.getCookieNamed("my-geb-cookie").value == "foobar"
}
}

如果您还有任何问题,请更新您的问题并提供 SSCCE重现实际问题。


更新问题修改后:PhantomJS的问题是如果你没有明确指定域,它会拒绝创建cookie。这有效:

options.addCookie(new Cookie("my-geb-cookie", "foobar", ".wikipedia.org", "/", null))

关于selenium - 如何使用 PhantomJS 在 Geb/Selenium 中设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42458194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com