Hello,
I’ve been searching for some answers but didn’t find anything about that, so if it already have been asked, I’m sorry.
Here is how my test works :
- open browser to MyURL
- enter a code
- a new window is opened
and my test can continue.
In the case where the code is invalid, the software don’t react.
So I would like to manage the case where there is or not a window index with value = 2
Here is my script if it can help
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.annotation.Keyword as Keyword
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
import com.kms.katalon.core.exception.StepErrorException as StepErrorException
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import com.kms.katalon.core.webui.driver.DriverFactory as DriverFactory
import internal.GlobalVariable as GlobalVariable
import org.openqa.selenium.WebDriver as WebDriver
import org.openqa.selenium.Keys as Keys
import org.openqa.selenium.WebElement as WebElement
import org.openqa.selenium.By.ByXPath as ByXPath
import org.junit.After
import org.openqa.selenium.By as By
import com.kms.katalon.core.windows.keyword.WindowsBuiltinKeywords as Windows
import static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject
CustomKeywords.'bdd.mysql.ConnexionBaseLocal'(GlobalVariable.url_base, GlobalVariable.port_base, GlobalVariable.db_name_base,
GlobalVariable.user_base, GlobalVariable.password_base)
CustomKeywords.'bdd.mysql.execute'('delete from _0000000_produit where prod_code_barre ilike \'_ALTA_%\'')
CustomKeywords.'bdd.mysql.execute'('delete from _0000000_lot where lot_produit_code_barre ilike \'_ALTA_%\'')
CustomKeywords.'openbrowser.DemarrageFirefox.AvecSynchro'()
WebUI.click(findTestObject('PageEncaissement/button_MENU'))
WebUI.click(findTestObject('PageMenu0/BoutonMenu4_Produits'))
WebUI.click(findTestObject('PageMenu4_Produits/BoutonProGestion Produits'))
WebUI.switchToWindowIndex(1)
errors = []
for (def LigneNum = 1; LigneNum <= findTestData('MajPrixTabac').getRowNumbers(); LigneNum++){
WebUI.click(findTestObject('PageMenu4_Produits/Page_Menu_Gestion Produits/button_Code Manuel'))
WebUI.setText(findTestObject('PageMenu4_Produits/Page_Menu_GestionProduits/Page_GestProd_CodeManuel/input_ClavierVisuel'), findTestData('MajPrixTabac').getValue(1, LigneNum))
WebUI.click(findTestObject('PageMenu4_Produits/Page_Menu_GestionProduits/Page_GestProd_CodeManuel/button_Code Altadis'))
WebUI.switchToWindowIndex(2)
WebUI.waitForElementClickable(findTestObject('PageMenu4_Produits/Page_Menu_GestionProduits/Page_Fiche Produit/button_Tous ses fournisseurs'), 0)
input_ttc = findTestObject('Object Repository/PageMenu4_Produits/Page_Menu_GestionProduits/Page_Fiche Produit/input_Prix TTC_fp_prod_prix')
WebUI.verifyElementAttributeValue(input_ttc, 'value', findTestData('MajPrixTabac').getValue(2, LigneNum), 0, FailureHandling.CONTINUE_ON_FAILURE)
WebUI.click(findTestObject('PageMenu4_Produits/Page_Menu_Gestion Produits/Page_FicheProduit/button_Valider'))
WebUI.switchToWindowIndex(1)
}
Hope I’ve been clear enough.
Thanks for your help.