Hello. I am new to Katalon Studio. I have a very small amount of experience using Katalon chrome extension.
I am trying to automate clicking on a + button on a website. The buttons follow this pattern: xpath=(.//*[normalize-space(text()) and normalize-space(.)='✓'])[${Slot}]/following::span[1]
where ${Slot} is index * 2 + 1. where index is for loop.
Test Case:
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 static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
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.windows.keyword.WindowsBuiltinKeywords as Windows
import internal.GlobalVariable as GlobalVariable
import org.openqa.selenium.Keys as Keys
WebUI.openBrowser('https://dg.coupons.com/signin/?done=%2Fcoupons%2F')
WebUI.setText(findTestObject('Page_Sign In/input_EMAIL OR PHONE_username'), Username)
WebUI.setText(findTestObject('Page_Sign In/input_Password_password'), Password)
WebUI.click(findTestObject('Object Repository/Page_Sign In/input_Sign in_btn-sign-in'))
WebUI.click(findTestObject('Page_Coupons Gallery/span_Add', [('Slot') : 1]))
WebUI.delay(1)
WebUI.click(findTestObject('Page_Coupons Gallery/label_Ok I understand Close window'))
for (def index : (1..99999)) {
WebUI.click(findTestObject('Page_Coupons Gallery/span_Add', [('Slot') : (index * 2) + 1]))
WebUI.scrollToPosition(0, 99999)
WebUI.delay(0.5)
}
2019-11-13 03:39:41.679 INFO c.k.katalon.core.main.TestCaseExecutor - --------------------
2019-11-13 03:39:41.683 INFO c.k.katalon.core.main.TestCaseExecutor - START Test Cases/Desktop
2019-11-13 03:39:41.948 INFO c.k.katalon.core.main.TestCaseExecutor - (Default) Username = ******************
2019-11-13 03:39:41.958 INFO c.k.katalon.core.main.TestCaseExecutor - (Default) Password = *************
2019-11-13 03:39:41.969 INFO c.k.katalon.core.main.TestCaseExecutor - (Default) Processed = 0
2019-11-13 03:39:42.332 DEBUG testcase.Desktop - 1: openBrowser("https://dg.coupons.com/signin/?done=%2Fcoupons%2F")
2019-11-13 03:39:42.636 INFO c.k.k.core.webui.driver.DriverFactory - Starting 'Chrome' driver
Nov 13, 2019 3:39:42 AM org.openqa.selenium.remote.DesiredCapabilities chrome
INFO: Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`
2019-11-13 03:39:42.690 INFO c.k.k.core.webui.driver.DriverFactory - Action delay is set to 0 seconds
Starting ChromeDriver 77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442}) on port 33318
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[1573634384.755][WARNING]: This version of ChromeDriver has not been tested with Chrome version 78.
[1573634386.760][WARNING]: Timed out connecting to Chrome, retrying...
Nov 13, 2019 3:39:48 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
2019-11-13 03:39:48.851 INFO c.k.k.core.webui.driver.DriverFactory - sessionId = 198b5286214d060a2b1d8654193bb082
2019-11-13 03:39:48.868 INFO c.k.k.core.webui.driver.DriverFactory - browser = Chrome 78.0.3904.97
2019-11-13 03:39:48.868 INFO c.k.k.core.webui.driver.DriverFactory - platform = Windows 10
2019-11-13 03:39:48.869 INFO c.k.k.core.webui.driver.DriverFactory - seleniumVersion = 3.141.59
2019-11-13 03:39:48.870 INFO c.k.k.core.webui.driver.DriverFactory - proxyInformation = ProxyInformation{proxyOption=NO_PROXY, proxyServerType=HTTP, password=, proxyServerAddress=, proxyServerPort=0}
2019-11-13 03:39:53.880 DEBUG testcase.Desktop - 2: setText(findTestObject("Page_Sign In/input_EMAIL OR PHONE_username"), Username)
2019-11-13 03:39:55.057 DEBUG testcase.Desktop - 3: setText(findTestObject("Page_Sign In/input_Password_password"), Password)
2019-11-13 03:39:55.775 DEBUG testcase.Desktop - 4: click(findTestObject("Object Repository/Page_Sign In/input_Sign in_btn-sign-in"))
2019-11-13 03:39:56.363 DEBUG testcase.Desktop - 5: click(findTestObject("Page_Coupons Gallery/span_Add", ["Slot":1]))
2019-11-13 03:40:37.046 INFO c.k.k.c.webui.common.WebUiCommonHelper - Unable to find the element located by 'By.xpath: '. Please recheck the objects properties to make sure the desired element is located.
2019-11-13 03:40:37.490 ERROR c.k.k.core.keyword.internal.KeywordMain - ❌ Unable to click on object 'Object Repository/Page_Coupons Gallery/span_Add' (Root cause: com.kms.katalon.core.exception.StepFailedException: Unable to click on object 'Object Repository/Page_Coupons Gallery/span_Add'
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:64)
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:26)
at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.click(ClickKeyword.groovy:99)
at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.execute(ClickKeyword.groovy:43)
at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:60)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.click(WebUiBuiltInKeywords.groovy:616)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$click$1.call(Unknown Source)
at Desktop.run(Desktop:27)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:337)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:328)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:307)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:299)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:233)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
at TempTestCase1573634377516.run(TempTestCase1573634377516.groovy:23)
Caused by: com.kms.katalon.core.webui.exception.WebElementNotFoundException: Web element with id: 'Object Repository/Page_Coupons Gallery/span_Add' located by 'By.xpath: ' not found
at com.kms.katalon.core.webui.common.WebUiCommonHelper.findWebElement(WebUiCommonHelper.java:1113)
at com.kms.katalon.core.webui.keyword.internal.WebUIAbstractKeyword.findWebElement(WebUIAbstractKeyword.groovy:27)
at com.kms.katalon.core.webui.keyword.internal.WebUIAbstractKeyword.findWebElement(WebUIAbstractKeyword.groovy:26)
at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword$_click_closure1.doCall(ClickKeyword.groovy:68)
at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword$_click_closure1.call(ClickKeyword.groovy)
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:20)
at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.click(ClickKeyword.groovy:99)
at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.execute(ClickKeyword.groovy:43)
at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:60)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.click(WebUiBuiltInKeywords.groovy:616)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$click$1.call(Unknown Source)
at Script1573608404684.run(Script1573608404684.groovy:27)
... 11 more
)
2019-11-13 03:40:37.494 ERROR c.k.katalon.core.main.TestCaseExecutor - ❌ Test Cases/Desktop FAILED.
Reason:
com.kms.katalon.core.exception.StepFailedException: Unable to click on object 'Object Repository/Page_Coupons Gallery/span_Add'
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:64)
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:26)
at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.click(ClickKeyword.groovy:99)
at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.execute(ClickKeyword.groovy:43)
at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:60)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.click(WebUiBuiltInKeywords.groovy:616)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$click$1.call(Unknown Source)
at Desktop.run(Desktop:27)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:337)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:328)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:307)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:299)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:233)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
at TempTestCase1573634377516.run(TempTestCase1573634377516.groovy:23)
Caused by: com.kms.katalon.core.webui.exception.WebElementNotFoundException: Web element with id: 'Object Repository/Page_Coupons Gallery/span_Add' located by 'By.xpath: ' not found
at com.kms.katalon.core.webui.common.WebUiCommonHelper.findWebElement(WebUiCommonHelper.java:1113)
at com.kms.katalon.core.webui.keyword.internal.WebUIAbstractKeyword.findWebElement(WebUIAbstractKeyword.groovy:27)
at com.kms.katalon.core.webui.keyword.internal.WebUIAbstractKeyword.findWebElement(WebUIAbstractKeyword.groovy:26)
at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword$_click_closure1.doCall(ClickKeyword.groovy:68)
at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword$_click_closure1.call(ClickKeyword.groovy)
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:20)
... 17 more
2019-11-13 03:40:37.497 INFO c.k.katalon.core.main.TestCaseExecutor - END Test Cases/Desktop