Unbale to Interact with elements using QAFWebDriver for Android Mobile Web in Perfecto

77 views Asked by At

Below are the details:

Selenium - 4.11.0 Appium Java-Client - 8.5.1 QAF - 4.0.0-RC2 OpenJDK 17

perfecto.properties

driver.name=perfectoDriver remote.server=https://.perfectomobile.com/nexperience/perfectomobile/wd/hub/fast remote.port=80 perfecto.additional.capabilities={"perfecto:options":{"automationName":"Appium","orientation":"LANDSCAPE","javascriptEnabled":true, "unicodeKeyboard":true,"deviceName":"R52T509SH3P","browserName":"Chrome", "securityToken":""},"driverClass":"io.appium.java_client.android.AndroidDriver"}

we have tried with:

QAFWebDriver driver =  new BancaTestBasePage().getTestBase().getDriver();
    driver.findElement(By.name("OpeId")).sendKeys(username);
    driver.findElement(By.name("Password")).sendKeys(password);
    driver.findElement(By.xpath("//input[@type='IMAGE']")).click();

expecting to enter user name and password and click login button

Actual: Error : org.openqa.selenium.JavascriptException: javascript error: arguments[0].scrollIntoView is not a function

Logs:

org.openqa.selenium.JavascriptException: javascript error: arguments[0].scrollIntoView is not a function (Session info: chrome=117.0.5938.61) (Driver info: chromedriver=117.0.5938.149 (e3344ddefa12e60436fa28c81cf207c1afb4d0a9-refs/branch-heads/5938@{#1539}),platform=Windows NT 6.3.9600 x86_64) Build info: version: '4.11.0', revision: '040bc5406b' System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.8' Driver info: com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver Command: [186fc2c3-1e03-4fba-a70f-9aa18f524856, executeScript {args=[{element-6066-11e4-a52e-4f735466cecf=A659E8FAF0A90B4AB694F72551EFAF0E_element_12}], script=arguments[0].scrollIntoView();}] Capabilities {appium:accessToken: eyJhbGciOiJSUzI1NiIsInR5cCI..., appium:app: , appium:appActivity: com.google.android.apps.chr..., appium:appPackage: com.android.chrome, appium:assert_javascript_enabled: true, appium:audioStreamInfo: {"audioStreamingServerUrl":..., appium:automationName: Appium, appium:chromedriverChromeMappingFile: C:\nexperience\modules\Chro..., appium:chromedriverExecutableDir: C:\nexperience\modules\Chro..., appium:databaseEnabled: false, appium:desired: {automationName: Appium, browserName: Chrome, chromedriverChromeMappingFile: C:\nexperience\modules\Chro..., chromedriverExecutableDir: C:\nexperience\modules\Chro..., deviceName: R52T509SH3P, driverClass: io.appium.java_client.andro..., goog:chromeOptions: {args: [], extensions: [], w3c: false}, javascriptEnabled: true, orientation: LANDSCAPE, platformName: Android, platformVersion: 12, unicodeKeyboard: true}, appium:deviceApiLevel: 31, appium:deviceManufacturer: samsung, appium:deviceModel: SM-X800, appium:deviceName: R52T509SH3P, appium:deviceScreenDensity: 340, appium:deviceScreenSize: 2800x1752, appium:deviceSessionId: 186fc2c3-1e03-4fba-a70f-9aa..., appium:deviceUDID: R52T509SH3P, appium:driverClass: io.appium.java_client.andro..., appium:entityType: remote_web_driver, appium:executionId: 186fc2c3-1e03-4fba-a70f-9aa..., appium:host: cloud.perfectomobile.com, appium:internalPureAppiumFlow: true, appium:javascriptEnabled: true, appium:liveStreamEnabled: false, appium:locationContextEnabled: false, appium:mcmExecutionId: [email protected]...., appium:networkConnectionEnabled: true, appium:orientation: LANDSCAPE, appium:password: , appium:pixelRatio: 2.125, appium:platformVersion: 12, appium:reportPdfUrl: https://cloud.app.perfect..., appium:scriptName: RemoteWebDriver, appium:securityToken: , appium:serverConnector: , appium:statBarHeight: 51, appium:stopUrl: https://cloud.perfectomob..., appium:streamInfo: {"url":"wss://ams-01.perfec..., appium:takesScreenshot: true, appium:testGridReportUrl: https://cloud.app.perfect..., appium:testRunWithPureAppiumFlow: true, appium:unicodeKeyboard: true, appium:viewportRect: {height: 1599, left: 0, top: 51, width: 2800}, appium:warnings: {}, appium:webStorageEnabled: false, browserName: Chrome, goog:chromeOptions: {args: [], extensions: [], w3c: false}, platformName: ANDROID} Session ID: 186fc2c3-1e03-4fba-a70f-9aa18f524856 at .Given the user login with credential(scenarios/E2E/e2e.feature:10) at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200) at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133) at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:52) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:191) at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:262) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518) at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.executeSuper(QAFExtendedWebDriver.java:237) at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.executeWithoutLog(QAFExtendedWebDriver.java:254) at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.executeWitoutLog(QAFExtendedWebDriver.java:299) at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.execute(QAFExtendedWebDriver.java:277) at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.execute(QAFExtendedWebDriver.java:231) at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:463) at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.executeScript(QAFExtendedWebElement.java:1251) at com.qmetry.qaf.automation.ui.webdriver.ElementMetaDataListener.scrollToElement(ElementMetaDataListener.java:187) at com.qmetry.qaf.automation.ui.webdriver.ElementMetaDataListener.onFailure(ElementMetaDataListener.java:181) at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.onFailure(QAFExtendedWebElement.java:540) at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.execute(QAFExtendedWebElement.java:276) at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.execute(QAFExtendedWebElement.java:247) at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:111) at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.sendKeys(QAFExtendedWebElement.java:242) at jp.co.cloud.ui.pages.LoginPage.Login(LoginPage.java:47) at jp.co.cloud.steps.IllustrationSingleSteps.inputsIDAndPasswordThenLogin(IllustrationSingleSteps.java:40) at jp.co.cloud.steps.CommonSteps.loginWithCredential(CommonSteps.java:44) at com.qmetry.qaf.automation.step.JavaStep.doExecute(JavaStep.java:150) at com.qmetry.qaf.automation.step.BaseTestStep.execute(BaseTestStep.java:149) at com.qmetry.qaf.automation.step.StringTestStep.execute(StringTestStep.java:128) at com.qmetry.qaf.automation.step.client.Scenario.execute(Scenario.java:174) at com.qmetry.qaf.automation.step.client.DataDrivenScenario.scenario(DataDrivenScenario.java:66) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833)

1

There are 1 answers

0
user861594 On

It looks like you have configured global element meta-data to specify auto scroll behavior using scroll meta-key or using custom listener.

If you have any custom element listener(s) look into it.

If not, either check if you have configured element.default.metadata property to update it accordingly or set element.default.listener to false. To disable scroll you can remove scroll meta-data or set it to false. Make sure your changes takes effect, refer different ways of setting properties.