猿问

JBehave Serenity:如何管理 baseURL 和相对 URL?

我是 Serenity 的新手,我了解到我们可以从命令行更改默认 URL。


这就是我声明默认 URL 的方式


@DefaultUrl("http://en.wiktionary.org/wiki/Wiktionary")

public class DictionaryPage extends PageObject {



}

但是对于每个页面,如果我继续像这样声明 URL,我最终会失去声明默认 URL 的概念。


我正在寻找的是我只是在某处指定默认 URL 并提供这样的相关页面 URL:


@DefaultUrl($baseURL+"/wiki/Wiktionary")

public class DictionaryPage extends PageObject {



}

我怎样才能做到这一点?


serenity.properties如下所示:


# Define the default driver

#webdriver.driver=phantomjs

# Appears at the top of the reports

serenity.project.name = Demo Project using Serenity and JBehave

serenity.restart.browser.for.each = NEVER

# Root package for any JUnit acceptance tests

#serenity.test.root=net.thucydides.showcase.junit.features

# Customise your requirements hierarchy

#serenity.requirement.types=feature, story

# Run the tests without calling webdriver - useful to check your JBehave wireing

#serenity.dry.run=true

# Customise browser size

#serenity.browser.height = 1200

#serenity.browser.width = 1200


哈士奇WWW
浏览 129回答 2
2回答

富国沪深

在 serenity.properties 文件中输入以下属性webdriver.base.url = http://en.wiktionary.org在您的页面对象中,像这样定义 DefaultUrl@DefaultUrl("/wiki/Wiktionary")public class DictionaryPage extends PageObject {}Serenity 将在调用 DefaultUrl 时构造完整的 URL。有关 serenity.properties 中所有可用属性的进一步参考,请参阅以下链接 https://github.com/serenity-bdd/serenity-documentation/blob/master/src/asciidoc/system-props.adoc

翻阅古今

除此之外,我认为您可以在页面对象中使用别名,如下所示:@DefaultUrl("/wiki/Wiktionary")@NamedUrls({    @NamedUrl(name = "glossary", url = "/wiki/Appendix:Glossary"),    @NamedUrl(name = "community_portal", url = "/wiki/Wiktionary:Community_Portal")})public class DictionaryPage extends PageObject {}并在您的步骤中使用它们:public class EndUserSteps {    DictionaryPage dictionaryPage;    @Step    public void navigatesUsingDeepLink() {        dictionaryPage.open("productId_1");    }}
随时随地看视频慕课网APP

相关分类

Java
我要回答