最简单的 Geb 示例失败断言
Simplest Geb example fail assert
我刚刚开始阅读和尝试一些 Geb
0.12.2 示例及其文档 (http://www.gebish.org/manual/current),需要帮助才能理解这些断言失败的原因。
我的第一次尝试是使用重定向到我们的 IDP 登录的 Web 应用程序,如果登录成功,则将您重定向到私有 Web 应用程序内容。
我在这个例子中一直失败并决定尝试最简单的例子(我也使用 Spok,用于重用的登录模块和规范定义)我可以做以更好地理解正在发生的事情(我也是 Eclipse 用户并且我已经在这种情况下切换到 IntelliJ)。
断言 2 和 3 失败,因为将空值与我的预期标题进行了比较:
package pages
import geb.Browser
import geb.Page
class GooglePage extends Page {
static url = "http://www.google.com/"
static content = {
heading { $("title").text() }
}
static at = {
title == "Google" //1
$('title').text() == "Google" //2
heading == "Google" //3
}
}
Browser.drive{
to GooglePage
}
//2 断言失败的输出:
Caught: Assertion failed:
$('title').text() == "Google"
| | |
| "" false
[[[FirefoxDriver: firefox on WINDOWS (2c4f1f19-b4fc-4f1f-bb39-9e0e2459da58)] -> css selector: title]]
输出//3断言失败:
Caught: Assertion failed:
heading == "Google" //3
| |
"" false
只有第一个断言为真,即 built-in title 属性。根据文档 http://www.gebish.org/manual/current/#at-checker 有几种方法可以检索标题的值,但我似乎使用不正确。
使用 chromeTest、firefoxTest 或 phantomJS 或 运行 来自 IntelliJ 或 gradlew 通过命令行同样失败)。
我有 re-readed 一些文档部分,但我读得越多,我理解的就越少。
我误解或遗漏了什么?
谢谢。
您只能通过 Page
class 的 title
属性 获取标题的值,您在 //1
中这样做。您不能使用 $()
select 或 select <title>
元素,这是 WebDriver 的限制 - 这就是 WebDriver.getTitle()
和 Page.getTitle()
委托的原因到它(根据它是 javadoc)。
能否请您指出 http://www.gebish.org/manual/current/#at-checker 的哪一部分让您相信有几种方法可以获得标题?我个人认为该部分没有做出这样的声明,但如果有,那么我们应该修复它。
我刚刚开始阅读和尝试一些 Geb
0.12.2 示例及其文档 (http://www.gebish.org/manual/current),需要帮助才能理解这些断言失败的原因。
我的第一次尝试是使用重定向到我们的 IDP 登录的 Web 应用程序,如果登录成功,则将您重定向到私有 Web 应用程序内容。
我在这个例子中一直失败并决定尝试最简单的例子(我也使用 Spok,用于重用的登录模块和规范定义)我可以做以更好地理解正在发生的事情(我也是 Eclipse 用户并且我已经在这种情况下切换到 IntelliJ)。
断言 2 和 3 失败,因为将空值与我的预期标题进行了比较:
package pages
import geb.Browser
import geb.Page
class GooglePage extends Page {
static url = "http://www.google.com/"
static content = {
heading { $("title").text() }
}
static at = {
title == "Google" //1
$('title').text() == "Google" //2
heading == "Google" //3
}
}
Browser.drive{
to GooglePage
}
//2 断言失败的输出:
Caught: Assertion failed:
$('title').text() == "Google"
| | |
| "" false
[[[FirefoxDriver: firefox on WINDOWS (2c4f1f19-b4fc-4f1f-bb39-9e0e2459da58)] -> css selector: title]]
输出//3断言失败:
Caught: Assertion failed:
heading == "Google" //3
| |
"" false
只有第一个断言为真,即 built-in title 属性。根据文档 http://www.gebish.org/manual/current/#at-checker 有几种方法可以检索标题的值,但我似乎使用不正确。
使用 chromeTest、firefoxTest 或 phantomJS 或 运行 来自 IntelliJ 或 gradlew 通过命令行同样失败)。 我有 re-readed 一些文档部分,但我读得越多,我理解的就越少。
我误解或遗漏了什么?
谢谢。
您只能通过 Page
class 的 title
属性 获取标题的值,您在 //1
中这样做。您不能使用 $()
select 或 select <title>
元素,这是 WebDriver 的限制 - 这就是 WebDriver.getTitle()
和 Page.getTitle()
委托的原因到它(根据它是 javadoc)。
能否请您指出 http://www.gebish.org/manual/current/#at-checker 的哪一部分让您相信有几种方法可以获得标题?我个人认为该部分没有做出这样的声明,但如果有,那么我们应该修复它。