Невозможно выбрать опцию из выпадающего списка в студии Katalon - PullRequest
0 голосов
/ 21 января 2020

Я новичок в Katalon Studio и столкнулся с проблемой выбора выпадающего меню. Пожалуйста, найдите ниже детали: Это HTML: enter image description here

Я пытался использовать selectByIndex с объектом xpath как: //div[@class='paCriteriaContainer']//select[@class = 'pa-criteria-select a-select initialized']

Это делает не выбрать какой-либо параметр и завершается ошибкой: «Невозможно выбрать параметр по индексу« 2 »объекта»

Примечание:

  1. Я попытался щелкнуть по входу и затем выбрать вариант, но это тоже не работает.
  2. Выбор по метке и значению также не работает

Пожалуйста, помогите мне здесь. Спасибо

Ответы [ 3 ]

0 голосов
/ 22 января 2020

Я попытался щелкнуть по входу и затем выбрать опцию, но, похоже, это тоже не сработало.

Вы уверены, что нажимаете нужный элемент в этом случае?

Вместо этого попробуйте следующее: программно создайте элемент и выберите по значению (примечание, значение не содержит текст, это атрибут value html):

TestObject to = new TestObject().addProperty("xpath", ConditionType.EQUALS, "//div[@class='paCriteriaContainer']//select[@class = 'pa-criteria-select a-select  initialized']")
WebUI.selectOptionByValue(to, '40696', false)
0 голосов
/ 12 февраля 2020

У вас есть несколько вариантов для этого, я советую вам всегда использовать xpath для доступа ко всем элементам, которые вы хотите использовать. Причина в том, что отчеты об объектах обычно не выполняются, и, на мой взгляд, этот способ намного сложнее. Но очевидно, что 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):

function getElementByXpath(path) {
    return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}

//And this code in the same console to test your xpath:
getElementByXpath("YOURTESTXPATH")

Кроме того, существуют другие способы достижения того же объектива с помощью 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)

У вас много информации, если вы Google "как получить элементы по xpath katalon".

Здесь вы можете получить официальную информацию об этом: https://docs.katalon.com/katalon-studio/tutorials/detect_elements_xpath.html#what -is-* 1016 XPath *

0 голосов
/ 21 января 2020

Попробуйте захватить объект, а затем используйте следующие методы:

WebUI.click(findTestObject(Your captured object))

WebUI.selectOptionByValue(findTestObject(Your captured object), 'TEST (2020)', false)

Вы сделали, как я описал, и это не работает?

...