java - 如何将网页元素与页面对象文件分开

标签 java selenium-webdriver pageobjects

因此,我遵循页面对象模型,并有一个类(A 类),其中包含特定页面的元素和功能。我还有一个使用 A 类的 Test 测试类。目前,我的页面至少有 222 个 Web 元素,因为该页面有许多组件需要填写以进行回归测试。正如您可以想象的,Page 对象有数百行代码,只有顶部的 Web 元素和底部的函数。我想知道如何分离这些网页元素,以便代码更清晰。

我看过 guru99 的文章,介绍如何将其放入 XML 中,但文章中的完成方式并不能解决我的问题,因为我仍然需要以某种方式初始化它们,或者使用“driver.find” (来自 XML 的定位器)' 无处不在,因此代码仍然会很困惑。

页面对象类 A

    public class PageA extends BasePage{

      @FindBy(xpath="//*[some xpath]")
      WebElement inputField1
      @FindBy(xpath="//*[some xpath]")
      WebElement inputField2
      @FindBy(xpath="//*[some xpath]")
      WebElement inputField3


     public PageA(Webdriver driver){
       super(driver);
     }

      public void method1(){
        //do something
      }

    }

我希望能够在其他地方初始化 222 个 Web 元素,以便代码更清晰

最佳答案

更好的想法是创建您自己的元素,例如按钮链接输入等。

而不是一般的WebElement。使用如此通用的 Web 元素 API 并不是那么舒服。您可以向按钮或链接键入文本(发送键)。

  1. 有关它的更多信息:How to implement user types for @FindBy annotation .

  2. 您可以使用具有此类功能的现有库,例如 Html Elements framework

  3. 您可以使用具有页面对象概念的框架,例如 SelenideSerenity framework

关于java - 如何将网页元素与页面对象文件分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58437954/

相关文章:

javascript - 我需要使用 Protractor 初始化 Spec 文件中的页面对象吗?

ruby - 您可以通过 site-prism 或仅通过 css 选择器按 id、标题、链接等查找元素吗?

java - 使用 Java 在 Selenium WebDriver 中使用 PageObjects、Page Factory 和 WebDriverWait

java - 如何在 Java 中比较字符串?

java - 英雄库 : spring boot acces to endpoints with https only

python - 使用 Selenium 选择下拉选项。 headless Chrome 。 Python

selenium - 使用 Selenium 自动填写包含敏感信息的表单有多安全

java - 每行打印 11 个数字?

java - Oauth 保护的休息 API 无需持有者 token 即可工作

angularjs - 无法通过 Protractor JS 在 IE11 上运行多重兼容性测试