java - Selenium页面对象模型,如何将变量从一个页面类传递到另一个页面类?

标签 java selenium pageobjects serenity-bdd cucumber-serenity

我想看看是否有一种方法可以将变量从一个页面对象传递到另一个页面对象?我正在为我的 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/

相关文章:

java - JAXB - "collision in the object factory class"的解决方案和策略

java - 从终端执行的命令,使用 ProcessBuilder 从 Java 失败

javascript - 错误 : Cannot find module ' in Protractor

java - 运行它但在 s :iterator tag 中没有显示

java - Jersey REST - 将 MultivaluedMap 发送到 GET 会导致不支持的媒体类型

java - Android - 在数组中创建 JSON 数组

java - 如何在selenium中模拟真实的按键输入 Action ?

selenium - PHPUnit Selenium 测试在 Docker 本地主机上失败,但使用公共(public) IP 通过

java - 使用页面对象模型获取相同的元素,即使元素不在 DOM 中

javascript - Protractor - 页面对象 : Failed: is not a function