Селен, получающий строку из сетки
Я новичок в Selenium / Katalon, и у меня проблемы с моим скриптом. Я получаю сообщение «Невозможно найти элемент» для указанного мной элемента таблицы.
Я не уверен, что ссылаюсь на неправильный xpath / id, любая помощь будет отличной.
Сценарий:
WebDriver driver = DriverFactory.getWebDriver()
WebUI.waitForElementClickable(findTestObject('WPE2/input_.0000_ctl00ContentPlaceHolderWPERadGr_21b7ef'), 0)
//Locate EE ID
WebElement Table = driver.findElement(By.id("ctl00_ContentPlaceHolderWPE_RadGridWPE_GridData"))
List<WebElement> Rows = Table.findElements(By.className("rgRow"))
println('No. of rows: ' + Rows.size())
table: for (int i = 0; i < Rows.size(); i++) {
List<WebElement> Cols = Rows.get(i).findElements(By.tagName('td'))
for (int j = 0; j < Cols.size(); j++) {
if (Cols.get(j).getText().equalsIgnoreCase(ExpectedValue)) {
Cols.get(4).findElement(By.xpath('//*[@id="ctl00_ContentPlaceHolderWPE_RadGridWPE_ctl00__0"]/td[14]')).click()
break
}
}
}
1 ответ
Как упоминалось в моем комментарии, этот вопрос можно улучшить, и я призываю вас все же ознакомиться с правильным форматированием. Вы также не можете указать, какой элемент вы ищете, поэтому читатель должен угадать его из вашего кода, что может ввести в заблуждение.
Бегло взглянув на код и снимок экрана, я предполагаю, что ваша проблема в том, что одинарная косая черта
/
в выражении XPath соответствует только прямым дочерним элементам. Так
//*[@id="something"]/td
будет соответствовать только
td
который находится непосредственно внутри элемента с соответствием
id
атрибут, который является
div
вне
table
.
Попробуйте либо
//*[@id="something"]//td
с двойной косой чертой
//
, или что-то вроде
//*[@id="something"]/table/tbody/tr/td