gpt4 book ai didi

java - 在 Selenide/Selenium 中模板定位器的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-01 08:51:27 27 4
gpt4 key购买 nike

我正在尝试在 UI 测试中使用页面对象模式。许多示例都假设将 By (Locator) 保存在类字段中。其他建议保存 WebElement(或 SelenideElement,如果您使用的是 Selenide)。虽然,两者都非常适合硬编码定位器,但我不知道如何将其用于路径包含变量的定位器。

例如,如何在类字段中保存该定位器?

public SelenideElement getTotal(String type) {
return $(By.xpath("//h4[contains(text(), '"+ type +"')]");
}

最佳答案

我认为您的解决方案是正确的。

我通常将它们放在 PageObject 的顶部,靠近其他选择器,就像您所做的那样。只需使用该方法,就像使用 SelenideElement 之一一样字段。像这样的东西:

private SelenideElement getTotalElementByType(String type) {
return $(By.xpath("//h4[contains(text(), '"+ type +"')]");
}

我会成功的privateprotected不过,因为使用页面对象模式,您的测试脚本不应该知道 WebElements在页面对象上。

您的公开访问方法将是这样的:

public int getTotalByType(String type) {
string totalString = getTotalElementByType(type).getText();
int total = //convert to int or whatever
return total;
}

如果您想与元素交互而不是获取值,您可以返回您希望访问的 PageObject,而不是遵循 POPattern。 :)

关于java - 在 Selenide/Selenium 中模板定位器的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42376565/

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