gpt4 book ai didi

testing - 如何将参数传递给 Geb 中的内容定义?

转载 作者:行者123 更新时间:2023-11-28 20:30:52 26 4
gpt4 key购买 nike

我有一个包含多本书链接的页面 (StartPage),我想创建一个通用方法或内容定义,单击具有特定标题的链接并导航至该页面。所有书页都定义了一个 static String TITLE 来定义书名。我想要做的是这样的(起始页):

def <T extends Page> T openBook(Class<T> pageType) {
$(".product h3", text: pageType.TITLE).parents("a").click()
browser.to(pageType)
browser.page as T
}

但是这不起作用,因为当我导航到 pageType(使用 browser.to(pageType))时,Geb 似乎将我重定向到登录页面请求的 pageType(可能是因为当我调用 to 时 session 被重置?)。

如果我重构方法并将所有内容硬编码到内容定义中:

static content = {
openMyBook(to: MyBookPage) { $(".product h3", text: "My Book Title").parents("a")}
}

它只需调用 openMyBook 即可工作,但如您所见,书页 (MyBookPage) 和 text 是硬编码的。

所以我的问题基本上是我是否可以将参数传递给内容定义 (openMyBook) 或修改 openBook 方法以在不丢失 session 的情况下导航到书页。

最佳答案

你需要在这里使用 browser.page(pageType) 而不是 to() 因为 to() 驱动浏览器到 url传入的页面类型。您可能没有为这些页面指定 static url = '...' 字段,默认值是您的基本 url 的根目录,这就是您看到浏览器最终出现在登录页面。

如果您在这里使用 browser.at(pageType) 会更好,因为这样您的书页的 at 检查器将被验证并且 at() 也会设置浏览器验证成功后的页面。

关于testing - 如何将参数传递给 Geb 中的内容定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26795990/

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