我正在尝试配置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语句中我提供的文本不存在,它将停止工作,并且不会移至其他位置。
答案 0 :(得分:4)
您的脚本很好,而且我认为您只需要在if语句中进行一些更改。 对于if语句,我认为您需要使用下面的另一个版本的verifyTextPresent和一个更多的参数FailureHandling.OPTIONAL
答案 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'))
}