perfecto-quantum / quantum-starter-kit Goto Github PK
View Code? Open in Web Editor NEWGet started with Quantum! Clone or download this repository to start, contains examples of tests and step definitions.
License: MIT License
Get started with Quantum! Clone or download this repository to start, contains examples of tests and step definitions.
License: MIT License
Hi,
In the Wiki link, BDD samples link is not working.
Can you please fix it?
Thanks,
Kulin
I am using Quantum Framework. I created annotation for scenarios and feature files. However i need to give priority in testng.xml file to my annotations while running as testng suite.
But now it is running as whichever annotation reads first it is executing in the order
Please help me I need to resolve at the earliest.
I am not sure if this can be considered an issue but there is a little update required in the Wiki page.
There is a link given to download the sample of quantum in Phase 1 : Running Sample as is. This link is resulting into an error page with a "Page not found error."
This can be corrected so that it would be easier for beginners to start with.
This is the page where this link is displayed: https://github.com/Project-Quantum/Quantum-Starter-Kit/wiki/Getting-Started
Link which results in the error: https://github.com/PerfectoCode/Quantum
Thank You
I have below switchToDriver method and when I use in more below method clickConversationFromSender it won't switch to receiverDevice.
It does the switch on first call on senderDevice but after that it won't switch to receiverDevice because the lstConverstions are retrieved from senderDevice instead of receiverDevice. This was working in previous 10.10 version where it was last tested.
public static void switchToDriver(String driverName) {
TestBaseProvider.instance().get().setDriver(driverName + "RemoteDriver");
String envResources = ConfigurationManager.getBundle().getString(driverName + ".env.resources");
ConfigurationManager.getBundle().setProperty("env.resources",envResources);
}
public boolean clickConversationFromSender(String senderDevice, String receiverDevice){
DeviceUtilsExtended.switchToDriver(senderDevice);
String senderPhoneNo=DeviceUtilsExtended.getDevicePhoneNumber();
DeviceUtilsExtended.switchToDriver(receiverDevice);
String receiverPhoneNo=DeviceUtilsExtended.getDevicePhoneNumber();
List lstConverstions = strConversationName.findElements("//android.widget.TextView[contains(@resource-id,'id/conversation_name')]");
...........................................................................................
}
I have a project where I have to automate 300 testcases using this framework, any estimates on how long it will take ?? let us say the average testcase will have 15 steps in it's scenario
thanks in advance
We need a getting started video, where user will see the following scenario:
As a tester I would like to start/stop record audio from a device, get a link to it and optionally send the file to speech-to-text engine so I can validate the recorded audio.
Hi ,
I am facing one issue while reading data from excel in scripts , the data is not in fields and getting below error .
below is the details:-
feature file:-
Scenario Outline: login
Given Open chrome and start application
When user enter valid ""
Then user enter ""
And I scroll down
And User should click on NOT NOW button
Examples: {'datafile' : 'src/main/resources/data/logindata.xlsx'}
step definition:-
@when("^user enter valid "([^\"]*)"$")
public void user_enter_valid(String Username) throws Throwable {
QAFExtendedWebElement userId = new QAFExtendedWebElement("Ecare.inputbox.userId");
userId.clear();
userId.sendKeys(Username);
error getting in console:-
include groups [@login]
exclude groups: [] Scanarios location: src/main/resources/scenarios
DATAFILE=src/main/resources/data/logindata.xlsx
DATAFILE=src/main/resources/data/logindata.xlsx
{DATAFILE=src/main/resources/data/logindata.xlsx}
{DATAFILE=src/main/resources/data/logindata.xlsx}
TestNG: loading csv data file: src/main/resources/data/logindata.xlsx
TestNG: loading csv data file: src/main/resources/data/logindata.xlsx
TestNG: Missing column header for column[3] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
TestNG: Missing column header for column[3] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
TestNG: Missing column header for column[3] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
TestNG: Missing column header for column[3] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
TestNG: Missing column header for column[3] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
TestNG: Missing column header for column[3] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
TestNG: Missing column header for column[4] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
TestNG: Missing column header for column[4] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
TestNG: Missing column header for column[5] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
TestNG: Missing column header for column[3] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
TestNG: Missing column header for column[5] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
TestNG: Missing column header for column[3] in data file: src/main/resources/data/logindata.xlsx. It will be included by lineNo
Please change the typo in the below line:
${qunatum.version} should be ${quantum.version}
The below wiki links are not clickable in HOME page [https://github.com/Project-Quantum/Quantum-Starter-Kit/wiki]:
[Getting Started](Getting Started)
[Project Layout](Project Layout)
Configuration and setup
[Application Properties](The application.properties file)
[Connection Properties](The connection.properties file)
[TestNG Configuration](Quantum TestNG File)
[Object Repository](Object Repository)
[Perfecto predefined steps](Perfecto predefined steps)
[Creating new steps](Creating customized steps)
[Utility methods](Java Utility classes)
Java samples
Hi folks,
I am currently using the command QAFExtendedWebdriver mydriver = getQAFDriver();
It will stores current driver in "mydriver" object so i can call its available methods.
Now i need to create a new driver object in the same current session itself to access IOSDriver specific methods.
IOSDriver<WebElement> driver= new IOSDriver<WebElement> (url, capabilities);
How to get current session url, capabilities to pass as parameters.
I googled a lot. But its not working out for me. Any inputs will help me a lot
Need to add several samples that demonstrate automation of several security vulnerabilities check.
Need to define first what is this list.
When I grab the starter project kit from git, I am getting an error that I have multiple definitions found for I start application by name. I haven't added any steps. This is just the base import from maven and the sample example for starting calculator.
Samples - Have 4 different samples :
Each sample name should be self explanatory, so user will understand what does the sample shows by its name
I am working with Quantum starter framework, Here I have to get data from JSON file so I used Scenario Outline, but still there are some issues in my gherkin file. Throwing error stating "required (...)+ loop did not match anything at input ''" near example keyword.
iachat.feature
@IA-Chat
Feature: Basic IA chat POC
@MessageBlock_TC1
Scenario Outline: To check whether a simple message block plays
Given I ran the bat file for application "71 06b34ed878322d128bdcefaa44ca762e27e95838a79a4ae0141ceefb76bdbcf2"
Then verify whether expected message "" matches the actual message
Examples: {"dataFile":"src/main/resources/data/MessageBlock.json"}
MessageBlock.json
[
{ "expectedMessage" : "Welcome , test case 1"},
{ "expectedMessage" : "1 2 3 4 5"},
{ "expectedMessage" : "The value is 10. ShockAbsorber test with variable"},
{ "expectedMessage" : "Bonjour. Merci Beacoup Monsieur"},
{ "expectedMessage" : "Thank you for calling . Dialed number is not empty"},
{ "expectedMessage" : "Thank you for calling . The CLI is between 7000 and 7010"},
{ "expectedMessage" : "Thank you for calling . This is a test call"},
{ "expectedMessage" : "Thank you for calling . After 2020."},
{ "expectedMessage" : "Thank you for calling . The current day is not sunday."}
]
We need to add a section indicating which capabilities can be added and how.
Might be done in a separate section and in more examples in the testng files, maybe commented out with short explanation beside each line.
Currently new users don't know which capabilities they can add or how.
We for sure need one example of Quantum script working with Wind Tunnel. This is particularly important as majority of APAC customers have moved or are moving to Quantum.
hi all,
i want to re-try test case whitch run failed first time ,But i don't want to excute all case again,just run failed cases again . what should i do ? thanks you very much.
While using latest quantum framework version, I am getting following error:
com.qmetry.qaf.automation.core.AutomationError: Unable to Create Driver Instance com.perfecto.wfa.server.errors.ErrorCodeException: WFA-401-0000 - Not authorized Details: 'Failed to authenticate session.'
I have tried following solution -> https://developers.perfectomobile.com/display/TT/Troubleshooting+%28WEB%29+-+WFA-401-0000+-+Not+authorized
but nothing worked out so far.
I am n IntelliJ 2019.3.2
Java 1.8
Maven 3.6
I am using organization proxies for connection. Everything was working in previous version, am I missing anything?
In the dependencies section of the documentation, QAF Cucumber plugin link is given. We are not able to install this plugin using this link.
As per the QAF developers, this plugin can be downloaded using this link in install new software option in eclipse:
https://qmetry.github.io/qaf/editor/bdd/eclipse/
It will be helpful if this link is given as an or option to download this plugin in case the origin link doesn't work for some users.
Thank You.
When we are trying to run the different scenarios in different devices at the same time we are getting this issues. if in one device the execution completes, then in other device the execution in other device is aborting,
We attached the log files as well,
Aug 07, 2018 1:32:48 PM org.openqa.selenium.support.ui.ExpectedConditions findElement
WARNING: WebDriverException thrown by findElement(By.xpath: //[@id='mainShell-header-hdr-begin']//[@Class='sapUiUfdShellHeadContainer']//span)
org.openqa.selenium.WebDriverException: Failed to execute command webpage.element find: findElements command failed. Reason: handset server: server is busy processing another request [/appiumModeStop]
Command duration or timeout: 0 milliseconds
Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T15:28:36.4Z'
System info: host: 'INLN50940147A', ip: '10.52.99.0', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_181'
Driver info: com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver
Capabilities [{reportPdfUrl=https://sap.reporting.perfectomobile.com/export/api/v1/test-executions/pdf?externalId[0][email protected]_RemoteWebDriver_18-08-07_07_58_06_557&_timestamp[0]=1533628686792, [email protected]_Eclipse_18-08-07_06_16_00_511, simpleIsVisibleCheck=true, deviceName=8753C71DE4EF26B55B14A739F678F7F8FB4F0BF6, platform=IOS, password=, deviceSessionId=55C47182A39902C219670DCD4F5354F5, driverClass=io.appium.java_client.ios.IOSDriver, automationName=Appium, host=sap.perfectomobile.com, singleTestReportUrl=https://sap.perfectomobile.com/nexperience/singletest/report/?reportRepositoryKey=PRIVATE:RemoteWebDriver/180807/RemoteWebDriver_18-08-07_07_58_06_557.xml&ownerId=[email protected]&sharingCode=32730250-e8b0-406e-a3e5-002b2505bfee, takesScreenshot=true, javascriptEnabled=true, model=iPad Air, platformName=IOS, rotatable=true, testGridReportUrl=https://sap.reporting.perfectomobile.com/library?externalId[0][email protected]_RemoteWebDriver_18-08-07_07_58_06_557&_timestamp[0]=1533628686792, entityType=remote_web_driver, xcuitestFindOptimizations=true, bundleId=com.apple.mobilesafari, serverConnector=, serverHost=10.51.19.23:11603, securityToken=, [email protected]_RemoteWebDriver_18-08-07_07_58_06_557, objectsOptimization=true, webdriver.remote.sessionid=09758e51-be65-4e01-9396-db0e5d91114f, locationContextEnabled=true, scriptName=RemoteWebDriver, reportKey=PRIVATE:RemoteWebDriver/180807/RemoteWebDriver_18-08-07_07_58_06_557.xml, windTunnelReportUrl=https://sap.perfectomobile.com/nexperience/singletest/report/?reportRepositoryKey=PRIVATE:RemoteWebDriver/180807/RemoteWebDriver_18-08-07_07_58_06_557.xml&ownerId=[email protected]&sharingCode=32730250-e8b0-406e-a3e5-002b2505bfee, user=, cssSelectorsEnabled=true}]
Session ID: 09758e51-be65-4e01-9396-db0e5d91114f
*** Element info: {Using=xpath, value=//[@id='mainShell-header-hdr-begin']//[@Class='sapUiUfdShellHeadContainer']//span}
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:82)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:45)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:89)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:586)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.execute(QAFExtendedWebDriver.java:236)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:458)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElementByXPath(QAFExtendedWebDriver.java:400)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElementByXPath(QAFExtendedWebDriver.java:1)
at org.openqa.selenium.By$ByXPath.findElement(By.java:361)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:348)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElement(QAFExtendedWebDriver.java:171)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElement(QAFExtendedWebDriver.java:1)
at org.openqa.selenium.support.ui.ExpectedConditions.findElement(ExpectedConditions.java:895)
at org.openqa.selenium.support.ui.ExpectedConditions.access$000(ExpectedConditions.java:41)
at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:181)
at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:178)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:238)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.load(QAFExtendedWebDriver.java:216)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.load(QAFExtendedWebElement.java:299)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.execute(QAFExtendedWebElement.java:250)
at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:83)
at com.qmetry.qaf.automation.step.CommonStep.click_aroundBody50(CommonStep.java:642)
at com.qmetry.qaf.automation.step.CommonStep$AjcClosure51.run(CommonStep.java:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
at com.qmetry.qaf.automation.step.JavaStepReporter.javaTestStep(JavaStepReporter.java:101)
at com.qmetry.qaf.automation.step.CommonStep.click(CommonStep.java:641)
at com.sap.utilities.CommonFunctionsUtility.selectMenu(CommonFunctionsUtility.java:405)
at com.quantum.steps.CommonStepsDefs.iSelectFromMenu(CommonStepsDefs.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.qmetry.qaf.automation.step.JavaStep.doExecute(JavaStep.java:159)
at com.qmetry.qaf.automation.step.BaseTestStep.execute(BaseTestStep.java:149)
at com.qmetry.qaf.automation.step.StringTestStep.execute(StringTestStep.java:134)
at com.qmetry.qaf.automation.step.client.Scenario.execute(Scenario.java:173)
at com.qmetry.qaf.automation.step.client.DataDrivenScenario.scenario(DataDrivenScenario.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:645)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(TestRunner.java:781)
at org.testng.TestRunner.run(TestRunner.java:635)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
at org.testng.SuiteRunner.access$000(SuiteRunner.java:39)
at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:421)
at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Failed to execute command webpage.element find: findElements command failed. Reason: handset server: server is busy processing another request [/appiumModeStop]
at com.perfectomobile.selenium.MobileEntity.processCommonResponse(MobileEntity.java:102)
at com.perfectomobile.selenium.MobileDevice.processResponse(MobileDevice.java:530)
at com.perfectomobile.selenium.MobileApplication.processResponse(MobileApplication.java:46)
at com.perfectomobile.selenium.dom.MobileDOMApplication.processResponse(MobileDOMApplication.java:389)
at com.perfectomobile.selenium.MobileEntity.executeCommand(MobileEntity.java:57)
at com.perfectomobile.selenium.MobileEntity.executeCommand(MobileEntity.java:50)
at com.perfectomobile.selenium.MobileApplication.findElementsImpl(MobileApplication.java:262)
at com.perfectomobile.selenium.dom.MobileDOMApplication.findElementsImpl(MobileDOMApplication.java:399)
at com.perfectomobile.selenium.MobileApplication.findElementsImpl(MobileApplication.java:243)
at com.perfectomobile.selenium.MobileApplication.findElementsByXPath(MobileApplication.java:199)
at com.perfectomobile.selenium.MobileApplication.findElementByXPath(MobileApplication.java:192)
at org.openqa.selenium.By$ByXPath.findElement(By.java:361)
at com.perfectomobile.selenium.MobileApplication.findElement(MobileApplication.java:132)
at com.perfectomobile.selenium.server.PerfectoMobileDriver.findElement(PerfectoMobileDriver.java:892)
at sun.reflect.GeneratedMethodAccessor1720.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:109)
at com.sun.proxy.$Proxy281.findElement(Unknown Source)
at org.openqa.selenium.support.events.EventFiringWebDriver.findElement(EventFiringWebDriver.java:193)
at org.openqa.selenium.remote.server.handler.FindElement.call(FindElement.java:48)
at org.openqa.selenium.remote.server.handler.FindElement.call(FindElement.java:33)
at org.openqa.selenium.remote.server.handler.WebDriverHandler.handle(WebDriverHandler.java:41)
at org.openqa.selenium.remote.server.rest.ResultConfig.handle(ResultConfig.java:112)
at org.openqa.selenium.remote.server.JsonHttpCommandHandler.handleRequest(JsonHttpCommandHandler.java:192)
at org.openqa.selenium.remote.server.MobileDriverServlet.lambda$handleRequest$0(MobileDriverServlet.java:465)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Finish update of wiki according new repository - repository went through major changes, need to make sure wiki documentation is aligned
Few things needed to be arranged \ cleaned in the repository:
· Clean samples features folder – keep only web + web data driven
· Change name of appium example
· Remove redundant step files, add relevant one which related to the existing feature example
· Object repo files – The same – remove redundant files, switch to loc extension only, add relevant repo file according the samples we have
· Add java test example, with page object model
· Clean pom file
· Remove license.key from application.properties file
Currently, this step is failing if the application is not open and works fine if the application is closed.
It gives application is not open error.
It would be convenient if this step would not give this error and close the application only if it is open. It can give a warning and continue without errors.
Thanks,
Kulin
We need to add a sample for how to check mobile \ mobile web \ desktop web accessibility using external accessibility services.
For web - we can add a flow for getting html content from the device, sending it to an external service, and sending the results (may url to the result in the external tool) to reportium.
For native - need to investigate which free tools exists in the market and how this can be done using automation.
org.openqa.selenium.WebDriverException: okhttp3.internal.http2.ConnectionShutdownException
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'AZWVDPHEV1396', ip: '10.229.152.210', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_311'
Driver info: driver.version: IOSDriver
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:254) ~[java-client-7.3.0.jar:?]
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) ~[selenium-remote-driver-3.141.59.jar:?]
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:41) ~[java-client-7.3.0.jar:?]
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1) ~[java-client-7.3.0.jar:?]
at io.appium.java_client.ios.IOSDriver.execute(IOSDriver.java:1) ~[java-client-7.3.0.jar:?]
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:285) ~[selenium-remote-driver-3.141.59.jar:?]
at io.appium.java_client.DefaultGenericMobileElement.execute(DefaultGenericMobileElement.java:45) ~[java-client-7.3.0.jar:?]
at io.appium.java_client.MobileElement.execute(MobileElement.java:1) ~[java-client-7.3.0.jar:?]
at io.appium.java_client.ios.IOSElement.execute(IOSElement.java:1) ~[java-client-7.3.0.jar:?]
at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:84) ~[selenium-remote-driver-3.141.59.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_311]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_311]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_311]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_311]
at com.qmetry.qaf.automation.step.JavaStep.doExecute(JavaStep.java:150) ~[qaf-2.1.15.jar:?]
at com.qmetry.qaf.automation.step.BaseTestStep.execute(BaseTestStep.java:146) [qaf-2.1.15.jar:?]
at com.qmetry.qaf.automation.step.StringTestStep.execute(StringTestStep.java:126) [qaf-2.1.15.jar:?]
at com.qmetry.qaf.automation.step.client.Scenario.execute(Scenario.java:174) [qaf-2.1.15.jar:?]
at com.qmetry.qaf.automation.step.client.DataDrivenScenario.scenario(DataDrivenScenario.java:66) [qaf-2.1.15.jar:?]
Feature: Google search
Scenario Outline: Search Keyword CSV Data
Given I am on Google Search Page
When I search for ""
Then it should have "" in search results
Examples: {'datafile' : 'src/main/resources/data/testData.xls'}
testData.csv file is available in provided place/path
Throwing error as below:
Caused by: gherkin.lexer.LexingError: Lexing error on line 20: '%FEATURE_END%'. See http://wiki.github.com/cucumber/gherkin/lexingerror for more information.
at gherkin.lexer.En.scan(En.java:904)
at gherkin.lexer.I18nLexer.scan(I18nLexer.java:36)
at gherkin.parser.Parser.parse(Parser.java:62)
at cucumber.runtime.FeatureBuilder.parse(FeatureBuilder.java:131)
... 12 more
Please suggest solution.
I have tried modifying feature file as below:
@WebDDcsv
Scenario Outline: Search Keyword CSV Data
Given I am on Google Search Page
When I search for ""
Then it should have "" in search results
Examples: {'datafile' : 'src/main/resources/data/testData.xls', 'sheetName': 'testResults'}
While trying to run Parallel execution. The last test only getting executed.
I have updated 3 test for Parallel execution. If I running the below xml file, Driver instance not created for Test1 & Test2 and geting failed but Test3 only getting executed.
Note: If executed sequentially all scripts are working fine.
Please help me on this. I need to execute Scenarios parallelly in edge browser.
In Xml file, suite tag line I have added=> suite name="SuiteName" verbose="0" parallel="tests" thread-count="4">
XML
Error Message
com.qmetry.qaf.automation.core.AutomationError: Unable to Create Driver Instance for edge: null
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.standardConnect(UiDriverFactory.java:442)
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.getDriver(UiDriverFactory.java:413)
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.access$300(UiDriverFactory.java:282)
at com.qmetry.qaf.automation.ui.UiDriverFactory.getDriver(UiDriverFactory.java:221)
at com.qmetry.qaf.automation.ui.UiDriverFactory.get(UiDriverFactory.java:89)
at com.qmetry.qaf.automation.core.QAFTestBase$DriverInitExpectedCondition.apply(QAFTestBase.java:568)
at com.qmetry.qaf.automation.core.QAFTestBase$DriverInitExpectedCondition.apply(QAFTestBase.java:1)
at com.qmetry.qaf.automation.ui.util.DynamicWait.until(DynamicWait.java:147)
at com.qmetry.qaf.automation.core.QAFTestBase.init(QAFTestBase.java:478)
at com.qmetry.qaf.automation.core.QAFTestBase.getUiDriver(QAFTestBase.java:253)
at com.qmetry.qaf.automation.ui.WebDriverTestBase.getDriver(WebDriverTestBase.java:44)
at com.qmetry.qaf.automation.ui.WebDriverTestBase.getDriver(WebDriverTestBase.java:1)
at com.qmetry.qaf.automation.ui.AbstractTestPage.(AbstractTestPage.java:81)
at com.qmetry.qaf.automation.ui.AbstractTestPage.(AbstractTestPage.java:88)
at com.qmetry.qaf.automation.ui.WebDriverBaseTestPage.(WebDriverBaseTestPage.java:65)
at com.qmetry.qaf.automation.ui.WebDriverBaseTestPage.(WebDriverBaseTestPage.java:61)
at com.leedOnline.pages.OnlineCreditsFormPage.(OnlinePage.java:28)
at com.leedOnline.steps.OnlineCreditForms.(OnlinePageDetails.java:14)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at com.qmetry.qaf.automation.step.DefaultObjectFactory.createInstance(DefaultObjectFactory.java:83)
at com.qmetry.qaf.automation.step.DefaultObjectFactory.getObject(DefaultObjectFactory.java:60)
at com.qmetry.qaf.automation.step.ObjectFactory$Provider.getObject(ObjectFactory.java:48)
at com.qmetry.qaf.automation.step.JavaStep.getStepProvider(JavaStep.java:173)
at com.qmetry.qaf.automation.step.JavaStep.doExecute(JavaStep.java:137)
at com.qmetry.qaf.automation.step.BaseTestStep.execute(BaseTestStep.java:149)
at com.qmetry.qaf.automation.step.StringTestStep.execute(StringTestStep.java:127)
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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:645)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(TestRunner.java:778)
at org.testng.TestRunner.run(TestRunner.java:632)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
at org.testng.SuiteRunner.access$000(SuiteRunner.java:39)
at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:421)
at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at com.qmetry.qaf.automation.ui.UiDriverFactory.getDriverObj(UiDriverFactory.java:259)
at com.qmetry.qaf.automation.ui.UiDriverFactory.access$800(UiDriverFactory.java:73)
at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.standardConnect(UiDriverFactory.java:437)
... 51 more
Link to BDD examples brings to 404 error.
Need to add a sample demonstrating how to run test on two different devices, and sending the snapshots to applitools, including in the reportium a url to the comparison in applitools.
The click method click("save.contact"); is a very useful short way to click on elements but ..... it cannot be used since it creates a seperate step in the report.
I have a test where I launch an app and then i check if the element //*[@text='Messages'] is visible but it fails even though the element is visible, xpath is checked and after it moves to second test which starts the same way it will pass and move to next steps. This was working on last test done on perfecto instance 10.10 but it stopped on 10.12 version.
Any idea what might be the issue?
Assert.assertTrue(launchAndroidMessagesApp(senderDevice));
Assert.assertTrue(homeScreen.messagesHeaderDisplayed(senderDevice));
[Pixel2 HT7731A0]: ▀▄▀▄▀ DEVICE PROPERTIES: Capabilities [{reportPdfUrl=https://rogers.reporting.onsite.perfectomobile.com/export/api/v1/test-executions/pdf?externalId[0][email protected]_RemoteWebDriver_17-12-21_14_50_51_25009&_timestamp[0]=1513885851688, [email protected]_Eclipse_17-12-21_11_18_59_24940, available=false, language=English, deviceName=HT7731A00770, deviceId=HT7731A00770, resolution=1080x1920, platform=ANY, wifiMacAddress=40:4e:36:0b:5b:ab, manufacturer=Google, mode=CONNECTED, password=, cradleId=HSS-106/VIRTUAL/01, osVersion=8.1.0, host=rogers.onsite.perfectomobile.com, singleTestReportUrl=https://rogers.onsite.perfectomobile.com/nexperience/singletest/report/?reportRepositoryKey=PRIVATE:RemoteWebDriver/171221/RemoteWebDriver_17-12-21_14_50_51_25009.xml&ownerId=[email protected]&sharingCode=a05ff647-9c2f-4323-8a3e-ccb64481631e, inUse=true, takesScreenshot=true, javascriptEnabled=true, model=Pixel 2, firmware=walleye-userdebug 8.1.0 OPM1.171019.011 4448085 dev-keys, rotatable=true, testGridReportUrl=https://rogers.reporting.onsite.perfectomobile.com?externalId[0][email protected]_RemoteWebDriver_17-12-21_14_50_51_25009&_timestamp[0]=1513885851688, os=Android, entityType=remote_web_driver, allocatedTo=[email protected], serverConnector=, securityToken=, [email protected]_RemoteWebDriver_17-12-21_14_50_51_25009, phoneNumber=+16479240083, webdriver.remote.sessionid=043d5fba-0a98-49f7-84b8-19da3a019cf0, locationContextEnabled=true, scriptName=RemoteWebDriver, location=Toronto, linkType=lab, reportKey=PRIVATE:RemoteWebDriver/171221/RemoteWebDriver_17-12-21_14_50_51_25009.xml, windTunnelReportUrl=https://rogers.onsite.perfectomobile.com/nexperience/singletest/report/?reportRepositoryKey=PRIVATE:RemoteWebDriver/171221/RemoteWebDriver_17-12-21_14_50_51_25009.xml&ownerId=[email protected]&sharingCode=a05ff647-9c2f-4323-8a3e-ccb64481631e, user=, operabilityRatingScore=100, cssSelectorsEnabled=true, status=Connected}] ▀▄▀▄▀
[Pixel2 HT7731A0]: Executing setTimeout parameters: {"ms":0,"type":"implicit"}
[Pixel2 HT7731A0]: command: setTimeout[ param-1: {type=implicit, ms=0}] Result: null
driver init done
[Pixel2 HT7731A0]: Executing switchToContext parameters: {"name":"NATIVE_APP"}
[Pixel2 HT7731A0]: command: switchToContext[ param-1: {name=NATIVE_APP}] Result: null
[Pixel2 HT7731A0]: Executing executeScript parameters: {"args":[{"identifier":"com.google.android.apps.messaging"}],"script":"mobile:application:close"}
[Pixel2 HT7731A0]: Executing executeScript parameters: {"args":[{"identifier":"com.google.android.apps.messaging"}],"script":"mobile:application:open"}
[Pixel2 HT7731A0]: Executing findElement parameters: {"using":"xpath","value":"//[@text='Messages']"}
[Pixel2 HT7731A0]: amdocs.com&sharingCode=10f938cd-8769-40b4-a87b-5acdf142f306, user=, operabilityRatingScore=100, cssSelectorsEnabled=true, status=Connected}]
Session ID: 2bc0a041-ae05-4da5-b533-8063d2ddf5a8
*** Element info: {Using=xpath, value=//[@text='Messages']}
org.openqa.selenium.TimeoutException: Timed out after 30 seconds waiting for presence of element located by: By.xpath: //[@text='Messages']
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'GAVRILDG02', ip: '10.16.34.99', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_121'
Driver info: driver.version: QAFExtendedWebDriver
at org.openqa.selenium.support.ui.FluentWait.timeoutException(FluentWait.java:292)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:261)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.load(QAFExtendedWebDriver.java:214)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.load(QAFExtendedWebElement.java:284)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.getId(QAFExtendedWebElement.java:294)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.isDisplayed(QAFExtendedWebElement.java:314)
at com.rogers.apps.custom.android_messages.screens.genericGooglePixel.HomeScreen.messagesHeaderDisplayed(HomeScreen.java:54)
at com.rogers.apps.custom.android_messages.steps.GenericSteps.sendMMSImageGallery(GenericSteps.java:96)
at com.rogers.utils.DecisionMaker.appAndroidMessagesSendMMSImageGallery(DecisionMaker.java:23)
at com.rogers.tests.Sanity.appAndroidMessagesSendAndReceiveMMS(Sanity.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:645)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(TestRunner.java:781)
at org.testng.TestRunner.run(TestRunner.java:635)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
at org.testng.SuiteRunner.run(SuiteRunner.java:289)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1218)
at org.testng.TestNG.runSuites(TestNG.java:1133)
at org.testng.TestNG.run(TestNG.java:1104)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)
Caused by: org.openqa.selenium.NoSuchElementException: Element with by xpath '//[@text='Messages']' wasn't found.
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: 'MCM-ROGERS', ip: '192.168.100.10', os.name: 'Windows Server 2008 R2', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_102'
Driver info: driver.version: EventFiringWebDriver
Command duration or timeout: 61.17 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'GAVRILDG02', ip: '10.16.34.99', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_121'
Driver info: com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver
Capabilities [{reportPdfUrl=https://rogers.reporting.onsite.perfectomobile.com/export/api/v1/test-executions/pdf?externalId[0][email protected]_RemoteWebDriver_17-12-21_14_50_37_25007&_timestamp[0]=1513885837895, [email protected]_Eclipse_17-12-21_11_18_59_24940, available=false, language=English, deviceName=1115FB434A041E03, deviceId=1115FB434A041E03, resolution=1440x2560, platform=ANY, wifiMacAddress=24:4b:03:83:f3:68, manufacturer=Samsung, mode=CONNECTED, password=, cradleId=HSS-204/007282/01, osVersion=7.0, automationName=Appium, host=rogers.onsite.perfectomobile.com, singleTestReportUrl=https://rogers.onsite.perfectomobile.com/nexperience/singletest/report/?reportRepositoryKey=PRIVATE:RemoteWebDriver/171221/RemoteWebDriver_17-12-21_14_50_37_25007.xml&ownerId=[email protected]&sharingCode=10f938cd-8769-40b4-a87b-5acdf142f306, inUse=true, takesScreenshot=true, browserName=MobileOS, javascriptEnabled=true, model=Galaxy S6, firmware=zerofltebmc-user 7.0 NRD90M G920W8VLU5DQD4 release-keys, rotatable=true, testGridReportUrl=https://rogers.reporting.onsite.perfectomobile.com?externalId[0][email protected]_RemoteWebDriver_17-12-21_14_50_37_25007&_timestamp[0]=1513885837895, os=Android, entityType=remote_web_driver, allocatedTo=[email protected], serverConnector=, securityToken=, [email protected]_RemoteWebDriver_17-12-21_14_50_37_25007, webdriver.remote.sessionid=2bc0a041-ae05-4da5-b533-8063d2ddf5a8, locationContextEnabled=true, scriptName=RemoteWebDriver, location=Toronto, linkType=lab, reportKey=PRIVATE:RemoteWebDriver/171221/RemoteWebDriver_17-12-21_14_50_37_25007.xml, windTunnelReportUrl=https://rogers.onsite.perfectomobile.com/nexperience/singletest/report/?reportRepositoryKey=PRIVATE:RemoteWebDriver/171221/RemoteWebDriver_17-12-21_14_50_37_25007.xml&ownerId=[email protected]&sharingCode=10f938cd-8769-40b4-a87b-5acdf142f306, user=, operabilityRatingScore=100, cssSelectorsEnabled=true, status=Connected}]
Session ID: 2bc0a041-ae05-4da5-b533-8063d2ddf5a8
*** Element info: {Using=xpath, value=//[@text='Messages']}
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.execute(QAFExtendedWebDriver.java:234)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:363)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:500)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElementByXPath(QAFExtendedWebDriver.java:398)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElementByXPath(QAFExtendedWebDriver.java:1)
at org.openqa.selenium.By$ByXPath.findElement(By.java:361)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:355)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElement(QAFExtendedWebDriver.java:169)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElement(QAFExtendedWebDriver.java:1)
at org.openqa.selenium.support.ui.ExpectedConditions.findElement(ExpectedConditions.java:899)
at org.openqa.selenium.support.ui.ExpectedConditions.access$000(ExpectedConditions.java:41)
at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:181)
at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:178)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:238)
... 33 more
Caused by: org.openqa.selenium.remote.ScreenshotException: Screen shot has been taken
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'GAVRILDG02', ip: '10.16.34.99', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_121'
Driver info: driver.version: QAFExtendedWebDriver
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:138)
... 48 more
Caused by: org.openqa.selenium.NoSuchElementException: Element with by xpath '//[@text='Messages']' wasn't found.
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: 'MCM-ROGERS', ip: '192.168.100.10', os.name: 'Windows Server 2008 R2', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_102'
Driver info: driver.version: EventFiringWebDriver
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'GAVRILDG02', ip: '10.16.34.99', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_121'
Driver info: driver.version: EventFiringWebDriver
at com.perfectomobile.selenium.MobileApplication.getSingleElement(MobileApplication.java:339)
at com.perfectomobile.selenium.MobileApplication.findElementByXPath(MobileApplication.java:194)
at org.openqa.selenium.By$ByXPath.findElement(By.java:361)
at com.perfectomobile.selenium.MobileApplication.findElement(MobileApplication.java:133)
at com.perfectomobile.selenium.server.PerfectoMobileDriver.findElement(PerfectoMobileDriver.java:825)
at sun.reflect.GeneratedMethodAccessor1384.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:104)
at com.sun.proxy.$Proxy263.findElement(Unknown Source)
at org.openqa.selenium.support.events.EventFiringWebDriver.findElement(EventFiringWebDriver.java:188)
at org.openqa.selenium.remote.server.handler.FindElement.call(FindElement.java:48)
at org.openqa.selenium.remote.server.handler.FindElement.call(FindElement.java:33)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.openqa.selenium.remote.server.MobileDefaultSession.lambda$execute$0(MobileDefaultSession.java:187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[Pixel2 HT7731A0]: java.lang.AssertionError: expected [true] but found [false]
[Pixel2 HT7731A0]: Executing screenshot parameters: {}
[Pixel2 HT7731A0]: Capturing screen shotappAndroidMessagesSendAndReceiveMMS_1snqfdecw1w4x22508.png
[Pixel2 HT7731A0]: at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)\r\n\tat org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)\r\n\tat org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)\r\n"}],"script":"mobile:test:end"}
[Pixel2 HT7731A0]: ▀▄▀▄▀ REPORTIUM URL: https://rogers.reporting.onsite.perfectomobile.com?externalId%5B0%[email protected]_RemoteWebDriver_17-12-21_14_50_37_25007&_timestamp%5B0%5D=1513885837895 ▀▄▀▄▀
[Pixel2 HT7731A0]: █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
[Pixel2 HT7731A0]: █ TEST FAILED: appAndroidMessagesSendAndReceiveMMS [{textMMS=MMS Flow test -This is MMS no 1}] █
[Pixel2 HT7731A0]: █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
We need to finalize the readme - add the needed instructions for the user on how to add object to an object repo, how to start write his first test , run the test, and view the report.
This should be written before we start talking about additional functionality in the framework such as parallel execution, data driven, etc.
Seems that in latest version 1.20, there is an extra [] in the tag list.
First tags will appear as [FIRST while the last tag will show as LAST]
Hi All,
Because of sysytem security settings I am not able to launch IE browser with quantum frame work. Where as with below mentioned setting I am able to launch. But the question is how can Incorporate this with quatum frame work. Is there any way to update those.Kindly help me with solution.
DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
caps.setCapability("requireWindowFocus", true);
Hi, I know this might turn out to be pretty straight forward but I have been beating around the bush since 2 days and still not able to figure out a way to achieve the subjected case.
I have an IEDriver session open and somewhere down the line in my scenario I close it with driver.close(). Now in same method where I close the session I initiate a new session using new WebDriverTestBase().getDriver() and it does give me a driver. But when I try to navigate to a URL using this new instance it throws Session does not exist exception.
Any help is greatly appreciated.
Hi,
I was wondering if we can make use of same framework for not just Device testing as well for Desktop web too. It would be helpful to have that information with sample feature files & steps definitions added to training course project. Thanks in advance
org.openqa.selenium.json.JsonException: Unable to determine type from: <. Last 1 characters read: <
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'AZWVDPHEV1395', ip: '10.229.152.209', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_311'
Driver info: driver.version: AndroidDriver
at org.openqa.selenium.json.JsonInput.peek(JsonInput.java:122) ~[selenium-remote-driver-3.141.59.jar:?]
at org.openqa.selenium.json.JsonTypeCoercer.lambda$null$6(JsonTypeCoercer.java:140) ~[selenium-remote-driver-3.141.59.jar:?]
at org.openqa.selenium.json.JsonTypeCoercer.coerce(JsonTypeCoercer.java:126) ~[selenium-remote-driver-3.141.59.jar:?]
at org.openqa.selenium.json.Json.toType(Json.java:69) ~[selenium-remote-driver-3.141.59.jar:?]
at org.openqa.selenium.json.Json.toType(Json.java:55) ~[selenium-remote-driver-3.141.59.jar:?]
at org.openqa.selenium.json.Json.toType(Json.java:50) ~[selenium-remote-driver-3.141.59.jar:?]
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:87) ~[selenium-remote-driver-3.141.59.jar:?]
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49) ~[selenium-remote-driver-3.141.59.jar:?]
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158) ~[selenium-remote-driver-3.141.59.jar:?]
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239) ~[java-client-7.3.0.jar:?]
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) ~[selenium-remote-driver-3.141.59.jar:?]
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:41) ~[java-client-7.3.0.jar:?]
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1) ~[java-client-7.3.0.jar:?]
at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) ~[java-client-7.3.0.jar:?]
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:285) ~[selenium-remote-driver-3.141.59.jar:?]
at io.appium.java_client.DefaultGenericMobileElement.execute(DefaultGenericMobileElement.java:45) ~[java-client-7.3.0.jar:?]
at io.appium.java_client.MobileElement.execute(MobileElement.java:1) ~[java-client-7.3.0.jar:?]
at io.appium.java_client.android.AndroidElement.execute(AndroidElement.java:1) ~[java-client-7.3.0.jar:?]
at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:106) ~[selenium-remote-driver-3.141.59.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_311]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_311]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_311]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_311]
at com.qmetry.qaf.automation.step.JavaStep.doExecute(JavaStep.java:150) ~[qaf-2.1.15.jar:?]
at com.qmetry.qaf.automation.step.BaseTestStep.execute(BaseTestStep.java:146) [qaf-2.1.15.jar:?]
at com.qmetry.qaf.automation.step.StringTestStep.execute(StringTestStep.java:126) [qaf-2.1.15.jar:?]
at com.qmetry.qaf.automation.step.client.Scenario.execute(Scenario.java:174) [qaf-2.1.15.jar:?]
at com.qmetry.qaf.automation.step.client.DataDrivenScenario.scenario(DataDrivenScenario.java:66) [qaf-2.1.15.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_311]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_311]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_311]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_311]
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104) [testng-6.10.jar:?]
at org.testng.internal.Invoker.invokeMethod(Invoker.java:645) [testng-6.10.jar:?]
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851) [testng-6.10.jar:?]
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177) [testng-6.10.jar:?]
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129) [testng-6.10.jar:?]
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) [testng-6.10.jar:?]
at org.testng.TestRunner.privateRun(TestRunner.java:778) [qaf-2.1.15.jar:?]
at org.testng.TestRunner.run(TestRunner.java:632) [qaf-2.1.15.jar:?]
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387) [testng-6.10.jar:?]
at org.testng.SuiteRunner.access$000(SuiteRunner.java:39) [testng-6.10.jar:?]
at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:421) [testng-6.10.jar:?]
at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64) [testng-6.10.jar:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_311]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_311]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_311]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_311]
Opened new ticket for this under main Quantum project:
https://github.com/Project-Quantum/Quantum/issues/47
Seems like the latest version of the starter kit has broken the ability to use scenario outlines. This error is thrown no matter what data format is used:
▀ ▀ ▀ END STEP: And I select "Bank or Invest Login" from list id "account" ▀ ▀ ▀
[{username}]
[XP 10]: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
[XP 10]: Executing screenshot parameters: {}
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at .Then I enter "${username}" to "username.ally.textbox"(src/main/resources/scenarios/Responsive.feature:9)
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at com.quantum.listeners.QuantumReportiumListener.getProcessStepDescription(QuantumReportiumListener.java:326)
These are the versions of the components in my POM file:
src/main/resources/config
testng_web.xml
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<reportium-sdk.version>1.2.0</reportium-sdk.version>
<selenium.version>2.53.1</selenium.version>
<testng.version>6.9.10</testng.version>
<cukes.version>1.2.5</cukes.version>
<qaf.version>2.1.13</qaf.version>
<qafsupport.version>2.1.11</qafsupport.version>
<quantum.version>1.14</quantum.version>
<org.json.version>20160810</org.json.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<quantum.version>1.20.1</quantum.version>
1. Use above test data in feature as test file
I can get the content in test successfully.
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated array at line 1 column 67 path $.[2]
[
{
"waitTimeToReceiveEmail": "5",
"emailContent" : {
"sender" : "[email protected]",
"title": "test",
"content" : ["休假申请已被批准", "业务流程:短期休假申请:moon"]
}
}
]
Feature file
Then User can validate email content with "<emailContent>"
Examples: {'datafile':'./src/main/resources/data/test.json'}
I use Gson to get the content, it's worked well.
JsonParser.parseReader(new FileReader("test.json"))
Hi,
Using the latest pom (with <quantum.version>1.13-RC1</quantum.version>) I'm getting below exception when I have to execute a test in more than 2 iterations. The actual tests are fine but the end result fails because of this exception on afterTest.
The same tests were executed with success in old pom (with <quantum.version>1.11</quantum.version>).
main: Executing quit parameters: {}
main: command: quit[ param-1: {}] Result: null
main: UI-driver tear down complete...
main: java.lang.NullPointerException
main: Executing screenshot parameters: {}
main: d5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'GAVRILDG02', ip: '10.16.40.145', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_162'
Driver info: driver.version: QAFExtendedWebDriver
org.openqa.selenium.remote.SessionNotFoundException: Session ID is null. Using WebDriver after calling quit()?
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'GAVRILDG02', ip: '10.16.40.145', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_162'
Driver info: driver.version: QAFExtendedWebDriver
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:134)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:644)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.execute(QAFExtendedWebDriver.java:236)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:701)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.execute(QAFExtendedWebDriver.java:224)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.getScreenshotAs(QAFExtendedWebDriver.java:272)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.takeScreenShot(QAFExtendedWebDriver.java:464)
at com.qmetry.qaf.automation.core.QAFTestBase.takeScreenShot(QAFTestBase.java:356)
at com.qmetry.qaf.automation.testng.pro.QAFTestNGListener.processResult(QAFTestNGListener.java:289)
at com.qmetry.qaf.automation.testng.pro.QAFTestNGListener.afterInvocation(QAFTestNGListener.java:211)
at com.qmetry.qaf.automation.testng.pro.QAFTestNGListener2.afterInvocation(QAFTestNGListener2.java:158)
at org.testng.internal.invokers.InvokedMethodListenerInvoker$InvokeAfterInvocationWithContextStrategy.callMethod(InvokedMethodListenerInvoker.java:108)
at org.testng.internal.invokers.InvokedMethodListenerInvoker$InvokeAfterInvocationWithContextStrategy.callMethod(InvokedMethodListenerInvoker.java:104)
at org.testng.internal.invokers.InvokedMethodListenerInvoker.invokeListener(InvokedMethodListenerInvoker.java:62)
at org.testng.internal.Invoker.runInvokedMethodListeners(Invoker.java:557)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:536)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:217)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:144)
at org.testng.TestRunner.afterRun(TestRunner.java:1008)
at org.testng.TestRunner.run(TestRunner.java:639)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
at org.testng.SuiteRunner.run(SuiteRunner.java:289)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1218)
at org.testng.TestNG.runSuites(TestNG.java:1133)
at org.testng.TestNG.run(TestNG.java:1104)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)
Preparing For Shut Down...
Thread-0: Executing quit parameters: {}
Thread-0: command: quit[ param-1: {}] Result: null
Thread-0: UI-driver tear down complete...
Exception in thread "Thread-0" java.lang.NullPointerException
at com.qmetry.qaf.automation.core.QAFTestBase.tearDown(QAFTestBase.java:191)
at com.qmetry.qaf.automation.core.TestBaseProvider.stopAll(TestBaseProvider.java:69)
at com.qmetry.qaf.automation.core.TestBaseProvider$1.run(TestBaseProvider.java:97)
facing this error when i am running the quantum git hub project in my local
like this :
but,how can i implement this with Quantum-Starter-Kit ?. DriverUtils.getDriver();? how to use it ?
Map<String, Object> deviceMetrics = new HashMap<String, Object>();
//设置屏幕大小、像素
deviceMetrics.put("width", 480);
deviceMetrics.put("height", 720);
deviceMetrics.put("pixelRatio", 3.0);
Map<String, Object> mobileEmulation = new HashMap<String, Object>();
mobileEmulation.put("deviceMetrics", deviceMetrics);
//设置要模拟的手机标识
mobileEmulation.put("userAgent",
"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");
//声明ChromeOptions,主要是给chrome设置参数
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
//设置驱动位置
System.setProperty("webdriver.chrome.driver", "D:\\tools\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver(chromeOptions);
Currently we have the application properties file and the related values in our documentation here.
It does not show the details of the features. For example:
installApp
This does not define the parameters for instrumentation, both web and sensor. We need the documentation updated to show the correct code for the application.properties file, which includes the exact code writing for each function and all the related parameters, including how it looks in Quantum.
Support gets these questions A LOT.
Need to remove the usage of community credentials from the script
In IntelliJ, when editing Feature files you only have to type and the options for API calls pop up automatically. But in Eclipse, you must hit Ctrl+Space to get these to pop up; request to change the Eclipse behavior to match IntelliJ.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.