gpt4 book ai didi

java - 在 Java 中使用 selenium 进行 UI 测试时如何存储 PageObject 内容?

转载 作者:行者123 更新时间:2023-11-29 04:45:02 25 4
gpt4 key购买 nike

我目前正在使用页面对象设计模型进行 UI 测试。目前,我在每个页面中都使用 HashMap 来存储内容。

我使用 map 的原因是,每当我有很多字段要填写时,我都会使用 fillData( map 数据)方法来匹配键。

例如,我的页面对象将具有:

Map<String, WebElement> content = new HashMap();

content.put("backgroundColor", WebElement a);
content.put("fontColor", WebElement b);
content.put("linksColor", WebElement c);
content.put("actionBarActiveColor", WebElement d);
content.put("activeColor", WebElement e);

public void fillDataFields(Map<String, String> data){

data.forEach( (k,v) -> {
content.get(k).setValue(v);
});
}

我的页面测试会:

generalAppearanceFieldsData = new HashMap();

generalAppearanceFieldsData.put("backgroundColor", BLUE_HEX);
generalAppearanceFieldsData.put("fontColor", ORANGE_HEX);
generalAppearanceFieldsData.put("linksColor", PURPLE_HEX);
generalAppearanceFieldsData.put("actionBarColor", RED_HEX);
generalAppearanceFieldsData.put("actionBarActiveColor", ORANGE_HEX);
generalAppearanceFieldsData.put("activeColor", GREEN_HEX);

我的测试会调用

brandingPage.fillDataFields(generalAppearanceFieldsData);

我遇到的问题是字符串键很难维护和验证,因为我可以调用一个指向任何地方的键。我不确定 map 是否是存储页面内容的正确方法。使用 Java 有更好的方法吗?

最佳答案

PageObjects 应用于将测试代码与页面的内部工作隔离开来。您可能需要考虑向您的页面对象添加与操作和/或 setter 相对应的方法,并从您的测试中调用它们。

PageObject 知道如何在页面上做事。Test 类与 PageObject 交互,要求它对页面执行操作,然后断言事情按预期发生了。

例如:

public class Test {
private final String BLUE_HEX="0000FF";
private final String RED_HEX="FF0000";
private WebDriver driver;

@Test
public void test() {
PageObject page = new PageObject(driver);
page.setBackgroundColor(BLUE_HEX);
page.setActionBarColor(RED_HEX);
// do stuff
assertTrue(page.getSomeValue());
}
}

public class PageObject {
private WebDriver driver;

public PageObject( WebDriver driver) {
this.driver = driver;
}
private void setText(String id, String val) {
driver.findElement(By.id(id)).sendKeys(val);
}
public void setBackgroundColor(String hex) {
setText("backgroundColor", hex);
}
public void setActionBarColor(String hex) {
setText("actionBarColor", hex);
}
public boolean getSomeValue() {
// Do some checks on the values etc
return true;
}
}

关于java - 在 Java 中使用 selenium 进行 UI 测试时如何存储 PageObject 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37531670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com