以下代码无法在Chrome浏览器中正常运行

时间:2020-02-20 12:36:22

标签: java selenium serenity-bdd serenity-js

enter image description here我创建了一个可重用的函数,该函数单击特定行的复选框并返回该行的文本。

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();”上引发异常 我不明白为什么它这么怪异。 需要帮忙。预先感谢。

1 个答案:

答案 0 :(得分:1)

您需要定位复选框,而不是xpath中的标签:

//kendo-grid-list//table/tbody/tr/td[1]/input[@type='checkbox']