Настройка оператора if-else в Katalon Studio - PullRequest
0 голосов
/ 24 декабря 2018

Я пытаюсь настроить оператор if-else, но мой код застревает в операторе if и не переходит к оператору else.

Я пытался добавить break; к оператору if, но он также не работает.

WebUI.openBrowser('')

WebUI.navigateToUrl('123/account/login?ReturnUrl=%2F')

WebUI.maximizeWindow()

WebUI.setText(findTestObject('123/Page_Log in/input_ _Username'), 'admin')

WebUI.setEncryptedText(findTestObject('123/Page_Log in/input_ _Password'), 'admin')

not_run: WebUI.verifyElementPresent(findTestObject('123/Page_Log in/span_Log in'), 1)

WebUI.click(findTestObject('123/Page_Log in/span_Log in'))

not_run: WebUI.verifyElementPresent(findTestObject('123/Page_Operator/button_To activate session sta'), 1)

WebUI.click(findTestObject('123/Page_Operator/button_To activate session sta'))

if (WebUI.verifyTextPresent("Operator already has active session", true)) {
    WebUI.click(findTestObject('if-else/Page_Operator/button_Clear'))

    WebUI.click(findTestObject('if-else/Page_Operator/button_To activate session sta'))

    WebUI.waitForPageLoad(5)

    WebUI.click(findTestObject('123/Page_Operator/click_phone'))

    WebDriver driver = DriverFactory.getWebDriver()

    WebElement Table = driver.findElement(By.xpath('//div[@id=\'missedCallsContainer\']'))

    List<WebElement> rows_table = Table.findElements(By.xpath('//tr[@class=\'dl-menu\']'))

    int rows_count = rows_table.size()

    println('No. of rows: ' + rows_count)
} 

else {
    WebUI.click(findTestObject('123/Page_Operator/click_phone'))
}

Работает, если код входит в оператор if, но если тот текст, который я предоставил в операторе if, отсутствует, то онперестает работать и больше не уходит.

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Ваш сценарий хорош, и я думаю, вам просто нужно немного изменить выражение if.Для оператора if я думаю, что вам нужно использовать другую версию verifyTextPresent, как показано ниже, с еще одним параметром FailureHandling.OPTIONAL

enter image description here

Дополнительную информацию можно найти по адресуhttps://docs.katalon.com/katalon-studio/tutorials/how_to_check_element_status_in_conditional_statement.html

0 голосов
/ 24 декабря 2018

В документации см. Driverfactory .

Разработчики Katalon знали, что методы WebDriver могут быть полезны для пользователей, поэтому они представили библиотеку DriverFactory.Эта библиотека отвечает за манипуляции с экземпляром WebDriver и предлагает несколько полезных методов для использования WebDriver в Katalon.

Одним из самых больших преимуществ этой библиотеки является метод changeWebDriver ().Как я упоминал ранее, по умолчанию невозможно использовать ключевые слова Katalon с пользовательскими экземплярами WebDriver.Но как только вы вызовете этот метод, вы сможете их использовать.Katalon установит ваш драйвер в качестве драйвера по умолчанию, и будет предоставлена ​​полная функциональность Katalon.

Просто добавьте DriverFactory.changeWebDriver(driver):

WebUI.openBrowser('')

WebUI.navigateToUrl('123/account/login?ReturnUrl=%2F')

WebUI.maximizeWindow()

WebUI.setText(findTestObject('123/Page_Log in/input_ _Username'), 'admin')

WebUI.setEncryptedText(findTestObject('123/Page_Log in/input_ _Password'), 'admin')

not_run: WebUI.verifyElementPresent(findTestObject('123/Page_Log in/span_Log in'), 1)

WebUI.click(findTestObject('123/Page_Log in/span_Log in'))

not_run: WebUI.verifyElementPresent(findTestObject('123/Page_Operator/button_To activate session sta'), 1)

WebUI.click(findTestObject('123/Page_Operator/button_To activate session sta'))

if (WebUI.verifyTextPresent("Operator already has active session", true)) {
    WebUI.click(findTestObject('if-else/Page_Operator/button_Clear'))

    WebUI.click(findTestObject('if-else/Page_Operator/button_To activate session sta'))

    WebUI.waitForPageLoad(5)

    WebUI.click(findTestObject('123/Page_Operator/click_phone'))

    WebDriver driver = DriverFactory.getWebDriver()

    DriverFactory.changeWebDriver(driver)

    WebElement Table = driver.findElement(By.xpath('//div[@id=\'missedCallsContainer\']'))

    List<WebElement> rows_table = Table.findElements(By.xpath('//tr[@class=\'dl-menu\']'))

    int rows_count = rows_table.size()

    println('No. of rows: ' + rows_count)
} 

else {
    WebUI.click(findTestObject('123/Page_Operator/click_phone'))
}
...