首页 > 解决方案 > 下面的代码不适用于 Chrome 浏览器

问题描述

在此处输入图像描述我创建了一个可重用的函数,它单击特定行的复选框并返回该行的文本。

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();”上抛出异常 我无法理解为什么它的行为如此怪异。需要帮忙。提前致谢。

标签: javaseleniumserenity-bddserenity-js

解决方案


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

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

推荐阅读