selenium中的By定位器应该作为示例变量还是局部变量?

qpgpyjmq  于 2022-10-22  发布在  Java
关注(0)|答案(1)|浏览(186)

我见过一些例子将所有By定位器字段作为示例变量放在顶部,但是如果它们在一个方法中只使用一次,那么它们肯定应该是局部的吗?哪个更干净更容易阅读?

zaqlnxep

zaqlnxep1#

即使它们只使用一次,最好在类级别声明所有页面元素。您也可以将其称为静态变量。一个简单的例子供你阅读。尽管我们只使用了一次汉堡图标,但我们仍然在顶级声明它们。由于是静态变量,我们在任何时候都只需要为此创建一个对象。

public class HomePage {
    private static By byHamburgerIcon = By.xpath("//div[contains(@class,'icon-hamburger')]");
    private static By byHeaderName = By.cssSelector("div[name='username']");

    public void clickHamburgerIcon() {
       PageActionHelper.click(byHamburgerIcon,"Clicked Hamburger icon");
    }
}

这样,如果将来发生任何更改,重构将更容易。

相关问题