Java 如何通过在函数中传递pageName和variableName来获取变量值

Java 如何通过在函数中传递pageName和variableName来获取变量值,java,selenium,Java,Selenium,我使用的是页面对象模型。因此,每个页面文件都包含变量(元素)。我通过传递pageName和variableName调用函数来单击元素 第页: 这里的“firstNameLbl”是变量名(MobileElement) 功能定义: import com.example.pageobjects.ChangeNamePageAndroid; public class ChangeNameUtilAndroid{ public ChangeNamePageAndroid changeNamePageA

我使用的是页面对象模型。因此,每个页面文件都包含变量(元素)。我通过传递pageName和variableName调用函数来单击元素

第页:

这里的“firstNameLbl”是变量名(MobileElement)

功能定义:

import com.example.pageobjects.ChangeNamePageAndroid;

public class ChangeNameUtilAndroid{

public ChangeNamePageAndroid changeNamePageAndroid = new ChangeNamePageAndroid();

public void enter123(String pageName, String mobileElementTitle, String text) {
   // **MobileElement mobileElement = pageName.mobileElementTitle;**
      mobileElement.sendKeys(text);
      }
    }
如何从另一个页面获取元素

在这里,我在调用函数时传递pageName和variableName

enter123(ChangeNamePageAndroid, firstNameLbl);
注意:我在javascript中也做了类似的事情

clickButton: function(pageName,varibleName){
    var page = require(pageName+'.js');
    var x = page[varibleName];
    element(by.id(x)).click();
},

正如我在这条注释行中看到的,您正在尝试单击静态字段。 MobileElement-MobileElement=pageName.mobileElementTitle

因此,您需要在页面类(changeName…类)中添加静态移动元素

添加getter函数以返回元素所在的同一类中的页面元素

我建议使用工厂数据结构来创建元素工厂类

@FindBy/@AndroidFindBy调用了页面工厂,为了使用页面对象模型,您需要向页面类中的元素和函数添加实名

例如: 类登录应至少包括3个名为的元素:usernameElement、passwordElement和loginButton。 函数必须描述实际操作: public void单击登录按钮()

clickButton: function(pageName,varibleName){
    var page = require(pageName+'.js');
    var x = page[varibleName];
    element(by.id(x)).click();
},