我想通过分页导航每个页面来验证表中的行中的元素。我能够导航到每个页面并断言元素,但是问题是在最后一页,即使Next链接变灰,循环仍然继续。点击下一步链接直到分页在硒webdriver禁用下一个动作
当接下来链路被禁用
<span>
<a class="next_btn inactive">NEXT ></a>
</span>
当接下来链接启用
<span>
<a class="next_btn" href="home.do?action=Next&start=10&end=20&sort=&
type=00&status=&fromDate=04/02/2017&toDate=05/02/2017&school=&
district=0009">NEXT ></a>
</span>
实际代码
public void submissionType() throws Exception {
driver.findElement(By.linkText("NEXT >"));
while(true) {
processPage();
if (pagination.isDisplayed() && pagination.isEnabled()){
pagination.click();
Thread.sleep(100L);
} else
break;
}
}
private void processPage() {
String statusColumn="//td[@class='gridDetail'][2]";
List<WebElement> list = table.findElements(By.xpath(statusColumn));
for (WebElement checkbox : list) {
String columnName=checkbox.getText();
Asserts.assertThat(columnName,"File");
}
}
'当您使用此方法,那么当对象被禁用,它的类名会改变,因此你的对象将不再得到识别并且你的循环会中断。“这并不是真的......即使是禁用按钮也可以通过CSS选择器”a.next_btn“找到。 – JeffC
当对象被禁用时,CSS不应该是a.next_btn.inactive吗?如果我们使用a.next_btn –
'a.next_btn.inactive'会在禁用时找到该按钮,但是会发现'a.next_btn'也会得到部分类名。 'next_btn'和'inactive'是两个不同的类。当它被禁用时,'a.inactive'也会找到按钮。 – JeffC