Some errors after a click on a web element

Hi,

I have some problems after a click on a web element.

Custom Keywords (Click)
Using the custom keywords, I verify this error:

Test Cases/Social Share FAILED because (of) Unable to click on object ‘Object Repository/Social Share - OR/Page_testpage Sky TG24/sharing icon’ (Root cause: org.openqa.selenium.WebDriverException: unknown error: Element

is not clickable at point (582, 677). Other element would receive the click:


(Session info: chrome=66.0.3359.139)
(Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 10.0.16299 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: ‘3.7.1’, revision: ‘8a0099a’, time: ‘2017-11-06T21:07:36.161Z’
System info: host: ‘DESKTOP-OBKCF1D’, ip: ‘10.25.205.184’, os.name: ‘Windows 10’, os.arch: ‘amd64’, os.version: ‘10.0’, java.version: ‘1.8.0_102’
Driver info: com.kms.katalon.selenium.driver.CChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 2.38.552522 (437e6fbedfa876…, userDataDir: C:\Users\FABIOR~1\AppData\L…}, cssSelectorsEnabled: true, databaseEnabled: false, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, rotatable: false, setWindowRect: true, takesHeapSnapshot: true, takesScreenshot: true, unexpectedAlertBehaviour: , unhandledPromptBehavior: , version: 66.0.3359.139, webStorageEnabled: true}
Session ID: 926dee429ac5b3491b50ab6e92f30521)

Researching on the web, I found an alternative method:

import org.openqa.selenium.JavascriptExecutorimport org.openqa.selenium.WebDriverimport org.openqa.selenium.WebElementimport com.kms.katalon.core.annotation.Keywordimport com.kms.katalon.core.testobject.TestObject as TestObjectimport com.kms.katalon.core.webui.common.WebUiCommonHelperimport com.kms.katalon.core.webui.driver.DriverFactoryimport com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI@Keyworddef clickUsingJS(TestObject to, int timeout) {    try {        WebUI.click(to)    }    catch (Exception e) {        WebDriver driver = DriverFactory.getWebDriver()        WebElement element = WebUiCommonHelper.findWebElement(to, timeout)        JavascriptExecutor executor = ((driver) as JavascriptExecutor)        executor.executeScript('arguments[0].click()', element)    }    throw(e)}
import org.openqa.selenium.WebDriver as WebDriver 
import org.openqa.selenium.WebElement as WebElement 
import org.openqa.selenium.interactions.Actions as Actions 
import com.kms.katalon.core.webui.common.WebUiCommonHelper as WebUiCommonHelper 
import com.kms.katalon.core.webui.driver.DriverFactory as DriverFactory 
import org.openqa.selenium.JavascriptExecutor as JavascriptExecutor@Keyword 
def clickUsingJS(TestObject to, int timeout) 
{ 
WebDriver driver = DriverFactory.getWebDriver() 
WebElement element = WebUiCommonHelper.findWebElement(to, timeout) 
JavascriptExecutor executor = ((driver) as JavascriptExecutor) 
executor.executeScript('arguments[0].click()', element) 
}

When I used the script to create a new keyword, I have this error:

com.keywords.clickUsingJS

The script created is:

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.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.checkpoint.CheckpointFactory as CheckpointFactory
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as MobileBuiltInKeywords
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.testcase.TestCaseFactory as TestCaseFactory
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testdata.TestDataFactory as TestDataFactory
import com.kms.katalon.core.testobject.ObjectRepository as ObjectRepository
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WSBuiltInKeywords
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUiBuiltInKeywords
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import internal.GlobalVariable as GlobalVariable
import org.openqa.selenium.Keys as Keys
WebUI.openBrowser('https://preaem.tg24-resp.sky.it/scienze/2018/04/26/testpage.html')
WebUI.maximizeWindow(FailureHandling.STOP_ON_FAILURE)
WebUI.verifyElementPresent(findTestObject('Social Share - OR/Page_testpage  Sky TG24/sharing icon'), 30)
WebUI.focus(findTestObject('Social Share - OR/Page_testpage  Sky TG24/sharing icon'))
CustomKeywords.'com.keywords.clickUsingJS.clickElement'(findTestObject('Social Share - OR/Page_testpage  Sky TG24/sharing icon'))

The script to create a new keyword is:

package com.keywords
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 org.openqa.selenium.JavascriptExecutor
class clickUsingJS {
def clickUsingJS(TestObject to, int timeout) {
try {
WebUI.click(to)
}
catch (Exception e) {
WebDriver driver = DriverFactory.getWebDriver()
WebElement element = WebUiCommonHelper.findWebElement(to, timeout)
JavascriptExecutor executor = ((driver) as JavascriptExecutor)
executor.executeScript('arguments[0].click()', element)
}
throw(e)
}
}

Can help me please?

Can you try scrolling to the element then click.

WebUI.scrollToElement(findTestObject(‘Social Share - OR/Page_testpage Sky TG24/sharing icon’), 60)

No,

I can scroll to the element but I don’t click it

These small errors can be detected easily by the use of rich libraries which you can get from https://netgears.support/netgear-genie-support