我最近一直在阅读Geb的书,并试图掌握它,因为它似乎是一个伟大的工具。我觉得我到了那里,但仍然有一些我似乎无法掌握的核心概念。
举个例子,请访问网站: - http://www.escapistmagazine.com/videos/view/zero-punctuation
现在,如果我想测试第一个列出的视频链接到正确的页面,我首先想到的是做以下事情
class ZeroPunctuationIndexPage extends Page {
static url = "http://www.escapistmagazine.com/videos/view/zero-punctuation"
static at = {title == "Zero Punctuation Video Gallery | The Escapist"}
static content = {
selectFirstVideo {$("a", 0, class: "filmstrip_video")}
firstVideoTitle {$("i", 0, class: "filmstrip_video")}
}
}
class ZeroPunctuationIndexSpec extends GebReportingSpec {
def "Click the latest video and play it"(){
given:
to ZeroPunctuationIndexPage
when:
selectFirstVideo.click()
then:
title.endsWith(firstVideoTitle)
}
}
基本上我想如果我选择包含视频的第一个类(filmstrip_video)然后选择其中的链接然后我可以点击它,并将链接中的视频标题与新页面标题进行比较。
再看一遍我并不感到惊讶它不起作用,但我不知道该怎么做。
如果有人能给我一个快速的解决方案,我会很感激。我没有对逃避现实的页面做任何特别的事情,我只是选择了带有视频索引的地方来尝试编写测试。
谢谢!
答案 0 :(得分:1)
它没有获得链接而且它失败了,所以我修复了它并进行了双重检查。现在,它工作正常,它通过。此外,当您选择第一个元素时,您不需要显式写入0,因为默认情况下它将选择第0个元素。
class ZeroPunctuationIndexPage extends Page {
static url = "http://www.escapistmagazine.com/videos/view/zero-punctuation"
static at = {title == "Zero Punctuation Video Gallery | The Escapist"}
static content = {
selectFirstVideo {$("div.filmstrip_video").find('a')}
firstVideoTitle {$("div.filmstrip_video").find('i')}
}
}
class ZeroPunctuationIndexSpec extends GebReportingSpec {
def "Click the latest video and play it"(){
given:
to ZeroPunctuationIndexPage
when:
waitFor { selectFirstVideo.click() }
then:
title.endsWith(firstVideoTitle.text())
}
}
干杯!
答案 1 :(得分:0)
尝试:
title.endsWith(firstVideoTitle.text())
我在我的iPad上,所以我无法测试它,但它应该可以工作。