【发布时间】:2020-04-01 21:55:34
【问题描述】:
我想看看是否有办法将变量从一个页面对象传递到另一个页面对象?我正在为我的 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());
}
}
当我调用返回 null 的 page1Steps.getSavedItemName() 时。我怀疑罪魁祸首可能是 webdriver 在页面之间切换时保存在上一页中的值对新页面无法访问?寻找有关如何成功执行此操作的任何建议。
【问题讨论】:
标签: java selenium pageobjects serenity-bdd cucumber-serenity