【问题标题】:Selenium Getting Row from GridSelenium 从网格中获取行
【发布时间】:2021-02-18 17:57:16
【问题描述】:

我是 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
        }
    }
}

【问题讨论】:

  • 欢迎,请直接发布您的代码,而不是截图。这将大大增加您获得帮助的机会。

标签: selenium xpath katalon


【解决方案1】:

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

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

试一试

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

带有双斜杠//,或类似的东西

//*[@id="something"]/table/tbody/tr/td

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-13
    • 2021-08-21
    • 2013-01-21
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多