- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Sauce Connect 中运行 Geb/Spock 测试,并且我希望每个测试都有唯一的 RemoteWebDriver 实例。这样,Sauce 报告将按测试进行划分,从而可以轻松诊断故障。我不担心(现在)额外的性能开销,因为通过一个 RemoteWebDriver 实例运行我们所有的 Geb 测试根本没有帮助 - 需要很长时间来协调结果与 Sauce 屏幕截图/截屏视频,并且当超时发生时(这在通过 Sauce Connect 长时间运行的作业中很可能发生)通常会有一些测试失败溢出。
我在一个扩展 GebReportingSpec 的类中尝试了这个:
def cleanup() {
if (System.getProperty('geb.env')?.contains('sauce')) {
setSauceJobStatus()
driver.quit()
}
}
void report(String label = "") {
browser.report(ReporterSupport.toTestReportLabel(_gebReportingSpecTestCounter, _gebReportingPerTestCounter++, _gebReportingSpecTestName.methodName, label))
}
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:125)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:572)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:622)
at org.openqa.selenium.remote.RemoteWebDriver.getPageSource(RemoteWebDriver.java:459)
at geb.report.PageSourceReporter.getPageSource(PageSourceReporter.groovy:42)
at geb.report.PageSourceReporter.writePageSource(PageSourceReporter.groovy:38)
at geb.report.PageSourceReporter.writeReport(PageSourceReporter.groovy:29)
at geb.report.CompositeReporter.writeReport(CompositeReporter.groovy:31)
at geb.Browser.report(Browser.groovy:788)
at geb.spock.GebReportingSpec.report(GebReportingSpec.groovy:44)
at geb.spock.GebReportingSpec.cleanup(GebReportingSpec.groovy:39)
最佳答案
不幸的是,您遇到了 GebReportingSpec
的限制Spock 的 setup 和 cleanup 方法在继承层次结构中的实现和固定执行顺序。您应该做的是以覆盖 GebSpec.resetBrowser()
的方法退出浏览器。而不是 cleanup()
:
void resetBrowser() {
def driver = browser.driver
super.resetBrowser()
if (System.getProperty('geb.env')?.contains('sauce')) {
driver.quit()
}
}
RemoteWebDriver
在
setup()
但你应该
disable driver caching这意味着每个驱动程序请求都会创建一个新驱动程序(每个浏览器创建一个驱动程序,每个测试创建一个新浏览器),而不是重用缓存的驱动程序。
关于groovy - 每次 Geb Spock 测试后退出驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29357333/
使用 Geb 时,是否可以在使用浏览器 API(而不是直接下载 API)时设置自定义请求 header 和用户代理? 虽然使用 FirefoxDriver 可以做到这一点(请参阅 here ),但我正
我对整体有点陌生Selenium/Geb事情,所以我可能会有点错误,但我正在尝试获得 exists()以下代码中的方法才能正常工作。 class Question extends Module {
我在设置和测试 Geb 时遇到了麻烦。我有一个简单的 Groovy 脚本: import geb.Browser; println("Test 11") Browser.drive { go
我要测试的网站有一个登陆页面,要求您选择一种语言。您可以通过在 url 中添加额外参数来跳过此问题。我想用 Geb 测试这种行为和 Spock作为测试框架。 所以我有带语言选择的登陆页面: class
我刚刚开始使用带有 webdriver 的 geb 进行自动化测试。 As I understand it ,当我在页面上定义内容时,每次调用内容定义时都应该查找页面元素。 //In the cont
我试图在我的测试中为下面的输入设置一个值,该输入具有默认值 当我在 Geb 页面中设置值时,它似乎附加到默认值 0.00300: grossExTax { $("#c
我正在尝试熟悉 Geb .我正在尝试从 Grails 内部运行它,但这根本不重要,因为我的问题是针对 Geb 的。 我有以下 test目录结构: myapp/ test/
我在 Geb 测试中遇到了很大的困难;如何从下拉列表中选择一个值。我尝试了四种不同的方法,但都不起作用。它要么使测试崩溃,要么直接跳过它。任何帮助将不胜感激 HTML 表单元素(102727 是数据库
出于某种原因,我的代码在应使用phantomjs时尝试使用firefox浏览器。 我的常规代码如下所示: import geb.Browser ... env = System.getenv()
我正在尝试测试.gsp文件生成的页面。为此,我需要访问特定字段的文本值。生成的HTML如下所示: Public? No gsp生成如下所示: Public?
当我尝试使用以下方法创建功能测试时:grails create-functional-test acceptance.tests.Logout我收到此错误,因为Spock尝试使用错误的Groovy版本
我尝试了 jQuery 和 javascript 方法来获取背景或文本颜色,但我总是在下面得到一个异常。 groovy.lang.MissingMethodException: No signatur
我的应用程序使用以下版本: 盖布:0.9.2 Selenium :2.26.0 chalice :2.1 斯波克:0.7 我正在一个带有以下内容的 linux 机器上运行: 火狐:14 Centos:
我有以下设置: 已安装 JDK 和 JRE 6u29 安装了selenium独立版2.8 Groovy 1.8.3 Geb 0.6.1 仅使用 GroovyConsole,我尝试执行 Geb 手册中给
我有一个 Page 类作为 class SignUpPage extends Page { static url = "signup" static at = { waitFor {
我有一个 Grails Cucumber 测试,使用 Geb。 如何获取为当前页面定义的请求参数? 例如鉴于当前页面 url 是 www.foo.com/list?sort=name&order=as
在我的 grails 应用程序中,我使用 Spock 和 Geb 执行功能测试。 由于所有测试都在同一个数据库上运行,我想提供执行 CRUDSpec 类的顺序。如何指定? 例子 第一个类测试博客作者的
我对此处的导航器 API 使用的措辞感到有点困惑 http://www.gebish.org/manual/current/api/geb/navigator/Navigator.html 特别是,我
我无法从列表框中选择值 25 50 100 在我的页面中我有: class TableSectionModule extends Module { static b
我在 GebConfig.groovy 中注册了一个意外的页面,如下所示: unexpectedPages = [EmptySearchResultPage] 页面类如下: import geb.Pa
我是一名优秀的程序员,十分优秀!