Hello,
My problem is that I often encounter problems when a click is not recognized DOM. Katalon allows us to use Xpath, Attribute, and CSS with object repository. But it often happens that none of his method works.
Can you help me?
I have tried to create my own method ‘click’ taking the path css, but again this is perfectible, much less than the XPath, but it takes only once for the run.
1- Here’s what I use in Object Repository:
package fr.stago
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
import com.kms.katalon.core.checkpoint.Checkpoint
import com.kms.katalon.core.checkpoint.CheckpointFactory
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords
import com.kms.katalon.core.model.FailureHandling
import com.kms.katalon.core.testcase.TestCase
import com.kms.katalon.core.testcase.TestCaseFactory
import com.kms.katalon.core.testdata.TestData
import com.kms.katalon.core.testdata.TestDataFactory
import com.kms.katalon.core.testobject.ObjectRepository
import com.kms.katalon.core.testobject.TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords
import internal.GlobalVariable
import MobileBuiltInKeywords as Mobile
import WSBuiltInKeywords as WS
import WebUiBuiltInKeywords as WebUI
import org.openqa.selenium.WebElement
import org.openqa.selenium.WebDriver
import org.openqa.selenium.By
import com.kms.katalon.core.mobile.keyword.internal.MobileDriverFactory
import com.kms.katalon.core.webui.driver.DriverFactory
import com.kms.katalon.core.testobject.RequestObject
import com.kms.katalon.core.testobject.ResponseObject
import com.kms.katalon.core.testobject.ConditionType
import com.kms.katalon.core.testobject.TestObjectProperty
import com.kms.katalon.core.mobile.helper.MobileElementCommonHelper
import com.kms.katalon.core.util.KeywordUtil
import com.kms.katalon.core.webui.exception.WebElementNotFoundException
import com.kms.katalon.core.testobject.SelectorMethod;
import com.kms.katalon.core.webui.common.XPathBuilder
class dmv9 {
@Keyword
def static click (String selector) {
click (getWebElement (selector))
}
@Keyword
def static getWebElement (String selector) {
TestObject webElement = new TestObject ()
webElement.addProperty (‘css’, ConditionType.EQUALS, selector)
return webElement
}
@Keyword
def static click (TestObject webElement) {
WebUI.waitForPageLoad (GlobalVariable.TimeOut)
WebUI.waitForElementPresent (webElement, GlobalVariable.TimeOut)
WebUI.waitForElementVisible (webElement, GlobalVariable.TimeOut)
WebUI.waitForElementClickable (webElement, GlobalVariable.TimeOut)
}
}
2- And here is my call in a test case:
CustomKeywords.'fr.stago.dmv9.click ‘(’ # btn-add-profile> button> div.mat-button-ripple.mat-ripple ')
3- The test passes but the click is not executed
Do you have any ideas, please.