在Katalon Studio中配置If-else语句

时间:2018-12-24 14:26:18

标签: selenium testing automated-tests katalon-studio

我正在尝试配置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 :(得分:4)

您的脚本很好,而且我认为您只需要在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

答案 1 :(得分:1)

documentation see driverfactory中。

  

Katalon开发人员意识到WebDriver方法可能对用户有用,因此他们引入了DriverFactory库。该库负责使用WebDriver实例进行操作,并提供了一些在Katalon中使用WebDriver的有用方法。

     

此库带来的最大好处之一就是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'))
}