【问题标题】:I would like to iterate the dynamic table through xpath but couldn't do it in katalon studio....Anyone expertise in Katalon Studio?我想通过 xpath 迭代动态表,但在katalon studio 中无法做到这一点.... Katalon Studio 中的任何人都有专长吗?
【发布时间】:2019-11-18 00:17:51
【问题描述】:
String beforeXpath= "//div[@data-dyn-rowid='"
String afterXpath="']//input[@name='ONGSROActivityLine_Quantity']"

WebDriver driver = DriverFactory.getWebDriver()

List list = driver.findElements(By.xpath('//input[@name=\'ONGSROActivityLine_Quantity\']'))

int countList = list.size()

println(countList)

for (def i = 1; i <=countList; i++) {

    List<String> actualXpath = beforeXpath+ i +afterXpath

    String selectAll = Keys.chord(Keys.CONTROL, "a")
    driver.findElements(By.xpath(actualXpath)).sendKeys(selectAll)
    driver.findElements(By.xpath(actualXpath)).sendKeys(Keys.DELETE)
    driver.findElements(By.xpath(actualXpath)).sendKeys(Keys.DELETE)
    driver.findElements(By.xpath(actualXpath)).sendKeys("10")


     //WebUI.sendKeys(findTestObject("//div[@data-dyn-rowid='"+i+"']//input[@name='ONGSROActivityLine_Quantity']"),Keys.chord(Keys.CONTROL, 'a'))

  // WebUI.sendKeys(findTestObject("//div[@data-dyn-rowid='"+i+"']//input[@name='ONGSROActivityLine_Quantity']"), 
        //Keys.chord(Keys.DELETE))

   // WebUI.sendKeys(findTestObject('Native Trax/Page_ONGNativeTraxCount -- Finance and Operations/input_Qty_ONGSROActivityLine_Quantity'), 
       // '10')

   // WebUI.sendKeys(findTestObject('Native Trax/Page_ONGNativeTraxCount -- Finance and Operations/input_Qty_ONGSROActivityLine_Quantity'), 
     //   Keys.chord(Keys.ENTER))
}

错误

原因: org.codehaus.groovy.runtime.typehandling.GroovyCastException:无法使用类“java.lang”转换对象“//div[@data-dyn-rowid='1']//input[@name='ONGSROActivityLine_Quantity']”。字符串'到类'java.util.List' 在 Native Trax.run(Native Trax:84) 在 com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194) 在 com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119) 在 com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:337) 在 com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:328) 在 com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:307) 在 com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:299) 在 com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:233) 在 com.kms.katalon.core.main.TestSuiteExecutor.accessTestCaseMainPhase(TestSuiteExecutor.java:169) 在 com.kms.katalon.core.main.TestSuiteExecutor.accessTestSuiteMainPhase(TestSuiteExecutor.java:142) 在 com.kms.katalon.core.main.TestSuiteExecutor.execute(TestSuiteExecutor.java:91) 在 com.kms.katalon.core.main.TestCaseMain.startTestSuite(TestCaseMain.java:157) 在 com.kms.katalon.core.main.TestCaseMain$startTestSuite$0.call(未知来源) 在 TempTestSuite1573849158556.run(TempTestSuite1573849158556.groovy:36)

【问题讨论】:

    标签: web dynamic datatables katalon-studio katalon-recorder


    【解决方案1】:

    您正在尝试将字符串类的对象转换为列表类。

    只需为实际的Xpath 尝试一个普通字符串:

    def actualXpath = beforeXpath+ i +afterXpath
    

    而不是

    List<String> actualXpath = beforeXpath+ i +afterXpath
    

    【讨论】:

    • DEBUG testcase.Native Trax - 1: actualXpath = beforeXpath + i + afterXpath DEBUG testcase.Native Trax - 2: xpath(actualXpath)).sendKeys(Keys.chord(CONTROL, "a"))错误 c.k.katalon.core.main.TestCaseExecutor - ❌ 测试用例/本机 Trax 失败。原因:groovy.lang.MissingMethodException:没有方法签名:java.util.ArrayList.sendKeys() 适用于参数类型:(java.lang.String) 值:[a]
    • 您将Keys.chord(Keys.CONTROL, "a") 作为字符串发送到sendKeys() 方法。注释掉该行并将下一行写为driver.findElements(By.xpath(actualXpath)).sendKeys(Keys.chord(Keys.CONTROL, "a"))
    • 按照指导编辑了代码,但仍然抛出错误。
    • groovy.lang.MissingMethodException:没有方法签名:java.util.ArrayList.sendKeys() 适用于参数类型:(java.lang.String) 值:[a] at Native Trax.run(Native Trax:77)
    • 这是 Katalon 中的一个已知问题:forum.katalon.com/t/…。但我仍然认为它应该工作。你能重新检查一下List&lt;String&gt; actualXpath... 是否被注释掉了吗?
    猜你喜欢
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    相关资源
    最近更新 更多