【发布时间】:2022-01-07 06:42:32
【问题描述】:
我正在使用包含三个 ID 定位器的页面对象构建三个测试用例。我想知道是否可以将定位器传递给所有三种情况的单个方法。
页面对象:
public class SomeClass {
@FindBy(how=How.CSS, using="label[for='yes']")
private WebElement yes;
@FindBy(how=How.CSS, using="label[for='maybe']")
private WebElement maybe;
@FindBy(how=How.CSS, using="label[for='no']")
private WebElement no;
public SomeClass(WebDriver driver) {
super(driver);
}
public SomeClass clicksButtons() {
*some locator*.click();
return new someClass(this.driver);
}
}
测试用例:
public class SomeTest {
@Test
public void willClickAButton() {
SomeClass someClass = new SomeClass(this.getDriver());
SomeClass.clicksButtons();
Assert.assertTrue(true);
}
我想将一个参数(是、也许或否)传递给 clicksButtons 方法,以便我可以在其他两个测试用例中重用该方法,而不必对其进行硬编码。我在 Google 上搜索过,但没有找到明确的答案。
【问题讨论】:
-
WebElement yes的范围是私有的,其他类或包不能使用它们。如果SomeClass和SomeTest都在类似的包中,请使用受保护的范围。 -
我做出了改变。
-
两个类在同一个包还是不同的包?
-
它们在同一个包中。
-
好的,可以分享一下clickButtons方法代码吗?
标签: java selenium parameters findby