当前位置: 首页 > 知识库问答 >
问题:

Geb和Spock:在每个测试之间关闭浏览器

马侯林
2023-03-14
test_automation
-functional
--src
---test
---groovy
----spec
-----Test Locations
---resources
----GebConfig.groovy
waiting {
    timeout = 20
}

environments {
    chrome {
        driver = {
            System.setProperty('webdriver.chrome.driver', 'src/test/resources/chromedriver')
            new ChromeDriver()
        }
    }

    firefox {
        driver = { new FirefoxDriver() }
    }
}
def setup() {
    resetBrowser()
    getBrowser()
}

def cleanup() {
    browser.close()
    browser.quit()
}
______________________________

def cleanup() {
    browser.clearCookies()
}
______________________________

def cleanup() {
    resetBrowser()
}

谢了。

共有1个答案

唐焕
2023-03-14
import geb.spock.GebSpec
import pages.RememberMePage
import spock.lang.*
import utils.PageHelper
import org.openqa.selenium.Cookie

class RememberMeLoginSpec extends GebSpec {
    @Shared cookieName = "remember-me"
    @Shared cookieValue = "initial"

    def "login user with remember me checked and close browser"() {
        given: 
        PageHelper.login(browser, "userOne", "password1!", true, false)
        cookieValue = driver.manage().getCookieNamed(cookieName).getValue()
        browser.close()
    }

    def "user opens browser"() {
        when: "cookie is set and user is logged in"
        browser.config.cacheDriver = false
        browser.driver = browser.config.driver
        RememberMePage rememberMePage = browser.to RememberMePage
        // navigate to a page before setting cookie to avoid 
        // https://code.google.com/p/chromedriver/issues/detail?id=728
        go "pageOne"
        Cookie cookie = new Cookie(cookieName, cookieValue)
        driver.manage().addCookie(cookie)
        // navigate to new page to "login" user
        go "pageTwo"

        then: "username appears in greeting and page requiring full authentication shows login modal"
        rememberMePage.navigation.greetingText.text().endsWith("userOne")
        rememberMePage.loginModal.loginModal.present

        cleanup:
        browser.quit()
   }
}
 类似资料:
  • 我在我的UI自动化框架中使用QAF开源Java库,并希望在每个测试中打开和关闭浏览器。但是,不能用下面的代码完成,因此由testSuccessfulLogin()打开的浏览器保持打开状态,因此testFailedLogin()失败。

  • 我有一个调用管道步骤方法(带有凭据)的共享库。我正在尝试测试withCredentials方法在调用myMethodToTest时是否被sh脚本正确调用,但在withCredentials闭包中迭代时遇到错误: 测试方法 嘲笑 测试用例 错误(it变量在闭包中变为null)

  • 我正在用Geb(0.12.2)和Spock定义一些规范来测试我的前端。我的应用程序的登录系统依赖于我们内部IDP的SSO。一旦我进入我的应用程序的私人部分,如果以前没有在我们的IDP中登录,它将重定向到IDP主页,然后登录并重定向到您最初询问的私人URL。 注销。 删除IDP设置的cookie。 我希望初始化每一个GebSpec类,而不需要任何以前的cookie或以前GebSpec执行中的状态,并

  • 问题内容: 我尝试了许多方法来通过jQuery或JavaScript检测浏览器关闭事件。但是,不幸的是,我无法检测到关闭。该和方法也没有工作。 如何检测的窗口,或事件? 问题答案: 您是否尝试过此代码? 第二个功能是可选的,以避免在单击和元素时提示。

  • 我尝试了许多方法通过jQuery或JavaScript检测浏览器关闭事件。但是,不幸的是,我一直未能检测到接近。和方法也不起作用。 如何在卸载前检测窗口、或

  • 我在一个扩展GebreportingSpec的类中尝试了这一点: 当然,我在setup()方法中创建了一个新的RemoteWebDriver。 使用这种方法,每个测试都得到一个独特的Sauce Connect会话,结果都以Sauce的形式组织得很好。但是,由于以下原因,所有测试都失败了: