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