我正在使用java的selenium webdriver。我面临一个问题。我有一个web表,我有添加事件功能的测试用例,它成功地将该事件添加到表中。现在我想断言/验证是否在表中添加了事件(因为如果功能被破坏,那么日期将不会添加到表中,并且我可以故意地使测试失败)。在测试用例开始之前事件的数量是未知的。我对此测试用例验证的逻辑如下:从Web表获取行数 - Selenium WebDriver Java
在表中添加事件。添加事件的代码是:
public void addIndividualEvent(String eventDate, String eventName) throws Exception { driver.findElement(individualEventDate).sendKeys(eventDate); driver.findElement(individualEventName).sendKeys(eventName); driver.findElement(addIndividualEventBtn).click(); }
现在,在此步骤之后,表中可能有多个事件。所以我的下一步将是。
查找表中的行数。
- 构建循环遍历每一行并获取日期字段的文本。
- 将for循环的结果添加到列表中。
- Then Assert.assertEquals(List,eventDate);会告诉我,如果我添加的事件是在表中或没有。
现在,下面是我网站中表格的HTML代码。
<table class="table table-condensed table-hover event-list">
<tbody>
<tr class="study-event-row ng-scope" ng-repeat="event in events | orderBy:'-date'">
<tr class="study-event-row ng-scope" ng-repeat="event in events | orderBy:'-date'">
<tr class="study-event-row ng-scope" ng-repeat="event in events | orderBy:'-date'">
</tbody>
</table>
我能够构建xpath,突出显示表中可用的所有行。
xpath = //table[@class='table table-condensed table-hover event-list']/tbody/tr
现在我面临的问题是,我不知道如何使用此xpath从我的表中获取行数。我试图使用xpath.getSize();
,但是这返回了表格的尺寸而不是实际的数量。
任何人都可以告诉我如何得到没有行?由于
你只在xpath中存储一个值?或者那是列表? –
@HelpingHands当我在浏览器中通过firepath搜索这个xpath时,上面的xpath给了我(加亮)所有行。我需要计算那些突出显示的行,但我不知道如何实现这一点。 – Uziii
我认为你应该数不清。行列表使用列表 rows = driver.findElements(by.tagname(“tr”)); rows.size();' –