我创建了一个可重用的函数,该函数单击特定行的复选框并返回该行的文本。
CheckBoxXpath-> private static final String XPATH_JOBRATECATEGORIES_CHECKBOX_LIST = "//kendo-grid-list//table/tbody/tr/td[1]/label";
RowXpath -> private static final String XPATH_JOBRATECATEGORIES_LIST = "//kendo-grid-list//table/tbody/tr/td[2]//div//div";
count-> 0 (I want to click only first row check box)
public String Select_CheckBox_Return_SelectedText(String CheckBoxXpath,String RowXpath, int Count) {
List<WebElementFacade> listOfCheckBox = findAll(By.xpath(CheckBoxXpath));
List<WebElementFacade> listOfrow = findAll(By.xpath(RowXpath));
if(listOfCheckBox.size()>Count) {
for (int i = 0; i <= Count; i++) {
listOfCheckBox.get(i).click();
String Actual=listOfrow.get(i).getText();
}
}else {
Assert.fail("Need to have more rows to fullfill the requirement");
return null;
}
return Actual;
}
这在Firefox浏览器上可以正常工作,但在Chrome浏览器上不能正常工作。 在调试时,代码在->“ listOfCheckBox.get(i).click();”上引发异常 我不明白为什么它这么怪异。 需要帮忙。预先感谢。
答案 0 :(得分:1)
您需要定位复选框,而不是xpath中的标签:
//kendo-grid-list//table/tbody/tr/td[1]/input[@type='checkbox']