首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Katalon Studio中配置If-else语句

在Katalon Studio中配置If-else语句
EN

Stack Overflow用户
提问于 2018-12-24 14:26:17
回答 2查看 2.7K关注 0票数 3

我正在尝试配置一个if - gets语句,但是我的代码会被困在if语句上,而不会继续使用else语句。

我尝试将break;添加到if语句中,但它也不起作用。

代码语言:javascript
复制
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语句中提供的文本不存在,它就会停止工作,不会转到别处。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-25 02:15:33

您的脚本很好,我认为您只需要修改一下if语句。对于if语句,我认为您需要使用另一个版本的verifyTextPresent,如下所示,再使用一个参数FailureHandling.OPTIONAL

欲了解更多信息,请访问statement.html

票数 4
EN

Stack Overflow用户

发布于 2018-12-24 15:27:48

文档见driverfactory里。

Katalon开发人员意识到WebDriver方法可能对用户有用,因此他们引入了DriverFactory库。这个库负责对WebDriver实例进行操作,并为在Katalon中使用WebDriver提供了一些有用的方法。 这个库带来的最大好处之一是changeWebDriver()方法。正如我前面提到的,默认情况下不可能将Katalon关键字与自定义WebDriver实例一起使用。但是一旦你调用这个方法,你就可以使用它们了。Katalon将您的驱动程序设置为默认驱动程序,并且提供了完整的Katalon功能。

只需添加DriverFactory.changeWebDriver(driver)

代码语言:javascript
复制
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'))
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53914658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档