Java 如何从页面对象文件中分离web元素

Java 如何从页面对象文件中分离web元素,java,selenium-webdriver,pageobjects,Java,Selenium Webdriver,Pageobjects,因此,我遵循页面对象模型,拥有一个类(类a),该类具有特定页面的元素和函数。我还有一个使用类a的测试类。目前我至少有222个Web元素用于页面,因为页面有许多组件需要填写以进行回归测试。可以想象,页面对象有数百行代码,顶部只有web元素,底部只有函数。我想知道如何分离这些web元素,以便代码更干净 我看过guru99中关于如何将其放入和XML的文章,但文章中的方法并不能解决我的问题,因为我仍然需要初始化它们,或者到处都有“driver.find(locator from XML)”,因此代码仍然

因此,我遵循页面对象模型,拥有一个类(类a),该类具有特定页面的元素和函数。我还有一个使用类a的测试类。目前我至少有222个Web元素用于页面,因为页面有许多组件需要填写以进行回归测试。可以想象,页面对象有数百行代码,顶部只有web元素,底部只有函数。我想知道如何分离这些web元素,以便代码更干净

我看过guru99中关于如何将其放入和XML的文章,但文章中的方法并不能解决我的问题,因为我仍然需要初始化它们,或者到处都有“driver.find(locator from 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并不舒服。您可以向按钮或链接键入文本(发送键)

  • 有关它的详细信息:

  • 您可以将现有库用于这样的功能,如

  • 您可以使用具有页面对象概念的框架,如或


  • 是否所有222个web元素都属于应用程序的单个页面?如果不是(很可能不是这样),将这些元素放在一个类中就违背了页面对象模型的全部目的。是的,所有222个元素都属于单个页面