我想看看是否有一种方法可以将变量从一个页面对象传递到另一个页面对象?我正在为我的 java 项目使用 Serenity BDD 框架。在一个页面上,我创建并命名一个项目,然后转到另一个页面,在其中尝试找到该项目,例如在表格中。我遇到了一个问题,我在第二页上调用的变量为 null。
每个页面都有自己的页面类,这是示例代码:
public class Page1 extends PageObject{
String itemName;
private String savedItemName;
public String getSavedItemName(){
return savedItemName;
}
public String createItemAndNameIt(){
//some action to create an item
//some action to save the item with a given name
//assigned from itemName which is fed from environment variable
savedItemName = itemName;
return itemName;
}
}
下一步是我的代码进入下一页并调用 savedItemName 变量。
public class Page2 extends PageObject{
Page1 page1Steps = New Page1();
String recoveredItemName;
public void searchForItem{
//perform some action to get a list of items
//calling a function that searches page for item
//which accepts element to search and string to search for
searchForElement(webElement,page1Steps.getSavedItemName());
}
}
当我调用page1Steps.getSavedItemName()时,返回null。我怀疑罪魁祸首可能是网络驱动程序,当在页面之间切换时,新页面无法访问上一页中保存的值?寻找有关如何成功做到这一点的任何建议。
最佳答案
public **String** createItemAndNameIt(){
//some action to create an item
//some action to save the item with a given name
//assigned from itemName which is fed from environment variable
savedItemName = itemName;
return itemName;
}
您的 setter 方法没有返回类型。
此外,在 Page2 类中,您的方法没有正确的签名和返回类型。不确定你是如何没有收到编译错误的。
关于java - Selenium页面对象模型,如何将变量从一个页面类传递到另一个页面类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60980966/