1

我是 Selenium/Katalon 的新手,我的脚本有问题。对于我指定的表格元素,我收到“无法定位元素”。

我不确定我是否引用了错误的 xpath/id,任何帮助都会很棒。

脚本:


WebDriver driver = DriverFactory.getWebDriver()

WebUI.waitForElementClickable(findTestObject('input'), 0)
//Locate EE ID
WebElement Table = driver.findElement(By.id("ctl00"))

List<WebElement> Rows = Table.findElements(By.className("Row"))

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')).click()

            break
        }
    }
}
4

1 回答 1

0

正如我在评论中提到的,这个问题可以改进,我敦促您仍然熟悉正确的格式。您也没有实际提及您正在查看的元素,因此读者必须从您的代码中猜测它,这可能会产生误导。

通过简要查看代码和屏幕截图,我猜您的问题是/XPath 表达式中的单斜杠仅匹配直接子级。所以//*[@id="something"]/td只会将td直接在元素内部的 a 与匹配属性id相匹配,即.divtable

尝试任一

//*[@id="something"]//td

用双斜线//或类似的东西

//*[@id="something"]/table/tbody/tr/td
于 2021-02-18T20:06:14.217 回答