Select 无法从Katalon studio的下拉列表中选择选项

Select 无法从Katalon studio的下拉列表中选择选项,select,katalon-studio,Select,Katalon Studio,我是卡塔隆工作室的新手,我面临着一个关于下拉列表选择的问题。 详情如下: 这是HTML: 我已尝试将selectByIndex与对象xpath一起使用,如下所示: //div[@class='paCriteriaContainer']//select[@class='pa-criteria-select-select-initialized'] 它未选择任何选项,并失败,错误为“无法通过对象的索引“2”选择选项” 注: 我试着点击输入,然后选择选项,但这似乎也不起作用 按标签和值选择也不起作用

我是卡塔隆工作室的新手,我面临着一个关于下拉列表选择的问题。 详情如下: 这是HTML:

我已尝试将selectByIndex与对象xpath一起使用,如下所示:
//div[@class='paCriteriaContainer']//select[@class='pa-criteria-select-select-initialized']

它未选择任何选项,并失败,错误为“无法通过对象的索引“2”选择选项”

注:

  • 我试着点击输入,然后选择选项,但这似乎也不起作用
  • 按标签和值选择也不起作用
  • 请帮帮我。
    谢谢

    尝试捕获对象,然后使用以下方法:

    WebUI.click(findTestObject(Your captured object))
    
    WebUI.selectOptionByValue(findTestObject(Your captured object), 'TEST (2020)', false)
    
    你是否按照我描述的那样做了,但它不起作用

    我试着点击输入,然后选择选项,但这似乎也不起作用

    在这种情况下,是否确实单击了正确的元素

    请尝试以下操作:以编程方式创建元素并按值选择(注意,值不是包含的文本,而是
    value
    html属性):


    您可以选择这样做,我建议您始终使用xpath来访问您想要使用的所有元素。这是因为对象报告通常会失败,在我看来,这种方式要复杂得多。 但是很明显,如果web改变了xpath,那么请小心

    The imports you need:
    import static org.junit.Assert.*
    import org.openqa.selenium.By
    import org.openqa.selenium.Keys
    import com.kms.katalon.core.webui.driver.DriverFactory as DriverFactory
    
    def driver = DriverFactory.getWebDriver()
    
    //If you want to click your input would be:
    WebUI.click(WebUI.convertWebElementToTestObject(driver.findElement(By.xpath("(//input[@id='a-select-paCricteriaId_6908'])"))))
    
    //**you just can click on "TestObject" type, and findElement returns "Element" type**
    
    如果你想选择这个选项,你需要知道整个路径(我不能用给定的信息得到它)

    测试xpath的一个重要技巧是在控制台模式(F12)下使用此函数:

    此外,还有其他方法可以通过xpath实现相同的目标,例如:

    import com.kms.katalon.core.testobject.TestObject as TestObject
    ...
    TestObject tobj = new TestObject('myTestObject')
    String expr = '/some/valid/xpath/expression'
    tobj.addProperty('xpath', ConditionType.EQUALS, expr)
    WebUI.click(tobj)
    
    如果你在谷歌上搜索“如何通过xpath katalon获取元素”,你会得到很多信息

    在这里您可以获得有关它的官方信息:
    在浏览器控制台中进行测试

    $x('//*[contains(@class, "pa-criteria-select a-select  initialized")]')
    
    如果出现多个结果,那么您可以像这样访问它

    $x('(//*[contains(@class, "pa-criteria-select a-select  initialized")])[1]')
    
    然后你也可以访问他们的孩子

    $x('(//*[contains(@class, "pa-criteria-select a-select  initialized")])[1]/option')
    

    你能发布你到底在用什么以及错误信息吗?
    $x('(//*[contains(@class, "pa-criteria-select a-select  initialized")])[1]')
    
    $x('(//*[contains(@class, "pa-criteria-select a-select  initialized")])[1]/option')