如何在selenium中使用page fatory处理页面对象模型中的动态html表?

时间:2016-09-06 13:18:41

标签: selenium-webdriver pageobjects

我有一个HTML页面并创建了该页面的页面对象。此页面包含动态html表。我无法将其用作页面对象,因为它是动态创建的。我想在我的测试用例中使用页面的任何行和列。

页面对象类:

ListView

![页面图片] [1]:http://i.stack.imgur.com/o94F0.png

我不想在我的测试用例中使用任何xpath或任何循环来遍历表的各行。我只想像使用AgentsPage.submit按钮那样使用任何其他静态页面对象元素。如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

没有xPath,你甚至无法找到表中所需的元素(你可以使用CssSelectors,但它们是相同的)。

做得对我建议您创建一个包含表格行(<tr>标签)的网络元素列表。此列表应由@FindBy属性初始化。

然后我认为创建&#34;得到&#34;是个好主意。数据的方法。

例如:

public String getName(int row, int cell)
{
    return theTable[row].findElement(By.xpath(".//td[" + cell + "]")).getText();
}

答案 1 :(得分:0)

将行号,电话号码,姓名等等项目存储在自己的列表中。您可以使用流轻松地将数据作为字符串获取。

@FindBy(xpath="xpath to the row number")
private List<WebElement> rowNum;

@FindBy(xpath="xpath to the phone number")
private List<WebElement> phoneNum;

同样适用于其他两个。数据将按照页面上的顺序排列。您可以使用列表中的索引轻松访问数据。