Closed mihai60beans closed 11 months ago
"Illegal key values seen in w3c capabilities: [build, name, projectName]". Your configuration is incorrect. See https://github.com/serenity-bdd/screenplay-pattern-todomvc and https://github.com/serenity-bdd/screenplay-pattern-todomvc/blob/master/src/test/resources/serenity.conf for an example of a correctly configured LambdaTest test suite.
My configuration for Chrome Web works also. The configuration for LambdaTest: Chrome mobile android or Safari mobile ios does not work.
I took your project and changed the serenity.conf and the same result: Chrome Web works but Safari iOS or Chrome android does not work.
I am running mvn clean verify -Ppageobjects
This is the error I receive for Safari iOS:
[ERROR] LearnAboutTheApplication.should_see_how_to_begin_with_page_objects:24 » DriverConfiguration WebDriver was unable to create a new instance of type class org.openqa.selenium.remote.RemoteWebDriver WebDriver reported the following message: Could not start a new session. Handshake response does not match any supported protocol. Response payload: {"sessionId":"SZHCI-LB4DU-OVLVR-6FHPU","status":0,"value":{"browserName":"Safari","databaseEnabled":false,"deviceName":"iPhone 12","deviceReadyTimeout":120,"fullReset":false,"headless":false,"javascriptEnabled":true,"launchTimeout":300,"locationContextEnabled":false,"locationServicesAuthorized":true,"nativeWebScreenshot":true,"networkConnectionEnabled":false,"newCommandTimeout":910,"performance":false,"platform":"ANY","platformName":"ios","platformVersion":"14.2","shutdownOtherSimulators":true,"takesScreenshot":true,"udid":"","useNewWDA":true,"waitForQuiescence":false,"wdaLaunchTimeout":120000,"webStorageEnabled":false}}
serenity.conf
base.url = "http://todomvc.com/examples/angularjs/#/"
driver = chrome
capabilities {
browserName = "chrome"
acceptInsecureCerts = true
unhandledPromptBehavior = accept
"goog:chromeOptions" {
args = ["test-type", "ignore-certificate-errors", "--window-size=1000,800",
"--remote-allow-origins=*","incognito", "disable-infobars", "disable-gpu",
"disable-default-apps", "disable-popup-blocking"]
}
}
}
headless.mode = false
serenity {
project.name = "Serenity BDD TodoMVC"
test.root = "net.serenitybdd.demos.todos"
tag.failures = "true"
linked.tags = "issue"
restart.browser.for.each = scenario
logging = verbose
#
# Use these options to reduce the size of the reports
#
# Report on test durations
report.test.durations = true
# Store HTML source for each page
# (can be: ALWAYS, FAILURES or NEVER)
// store.html = FAILURES
}
// Default page configuration
home.page = "http://todomvc.com/examples/angularjs/#/"
environment = lambdatest
environments {
local {
home.page = "http://localhost:8080/angularjs/#/"
}
prod {
home.page = "http://todomvc.com/examples/angularjs/#/"
}
chrome {
webdriver {
driver = chrome
autodownload = true
capabilities {
browserName = "chrome"
acceptInsecureCerts = true
"goog:chromeOptions" {
args = ["test-type", "ignore-certificate-errors", "headless", "--window-size=1000,800"
"incognito", "disable-infobars", "disable-gpu", "disable-default-apps", "disable-popup-blocking"]
}
}
}
}
lambdatest {
home.page = "http://todomvc.com/examples/angularjs/#/"
#
# You define the Lambdatest credentials either in the LT_USERNAME and LT_ACCESS_KEY environment variables, or by
# setting the following properties:
#
# lt.user = your.username
# lt.key = your.access.key
#
# You can also override the Lambdatest grid url by setting the following property.
# lt.grid="hub.lambdatest.com"
webdriver {
driver = remote
remote.url = "https://myusername:mypassword@hub.lambdatest.com/wd/hub"
capabilities {
#appium.browserName = "Safari"
#browserName = "Chrome"
browserName = "Safari"
#browserVersion = "latest"
"LT:options" {
#appium.browserName = "Safari"
#appium.automationName = "XCUITest"
#appium.platformName = "ios"
#appium.deviceName = "iPhone 12"
#browserName = "Safari"
#automationName = "XCUITest"
platformName = "ios"
deviceName = "iPhone 12"
#platformName = "ios"
#deviceName = "iPhone 12"
#appium.platformName = "android"
#appium.deviceName = "Galaxy S22 Ultra 5G"
#platformName = "android"
#deviceName = "Galaxy S22 Ultra 5G"
isRealMobile = "false"
}
}
}
# webdriver {
# driver = remote
# remote.url = "https://myusername:mypassword@hub.lambdatest.com/wd/hub"
# capabilities {
# browserName = "chrome"
# "goog:chromeOptions" {
# args = ["test-type", "no-sandbox", "ignore-certificate-errors", "--window-size=1000,800",
# "incognito", "disable-infobars", "disable-gpu", "disable-default-apps", "disable-popup-blocking"]
# }
# "LT:options" {
# platformName = "Windows 10"
# }
# }
# }
}
}```
I don't use the Safari driver very often but you will need to find the right combination of W3C properties to work with Safari on LambdaTest. If it works with Chrome it isn't a Serenity issue (Serenity just sends the W3C options you provide it), so you should ask the LambdaTest folk.
This configuration worked for me:
webdriver {
driver = remote
remote.url = "https://"${LT_USERNAME}":"${LT_ACCESS_KEY}"@hub.lambdatest.com/wd/hub"
capabilities {
browserName = "Safari"
"LT:options" {
platformName = "Mac OS X"
}
}
Safari Web works indeed, Safari mobile iOS doesn't work with serenity 4.x.x versions but it did work with serenity 3.6.7 version.
Below worked for Safari mobile iOS with serenity 3.6.7.
environments {
lambdatest_safari_mobile {
webdriver {
driver = remote
remote.url = "https://myusername:mypassword@hub.lambdatest.com/wd/hub"
capabilities {
browserName = "Safari"
browserVersion = "latest"
"LT:Options" {
platformName = "ios"
deviceName = "iPhone 12"
isRealMobile = "false"
}
}
}
}
I will ask also LambdaTest team if you say it's not a Serenity plugin issue.
You will want to ask them about any modifications you need to do to your capabilities for Selenium 4.x, as the latest versions of Serenity use the latest versions of Selenium which have a number of breaking changes.
sure, will do. thanks! I will close this then.
What happened?
I cannot run tests on LambdaTest using latest 4.x serenity versions. I could do that in the serenity 3.x versions.
The error is:
What did you expect to happen?
I can run tests on LambdaTest for mobile iOS Safari using serenity latest version.
Serenity BDD version
4.0.15
JDK version
21
Execution environment
MacOS or Windows
How to reproduce the bug.
Using Java Junit Serenity and LambdaTest plugin
pom.xml
serenity.conf
Command to run the tests:
mvn clean test -Dtest=A_LambdaTest -Denvironment=lambdatest_safari_mobile
How can we make it happen?
Add it to the Serenity BDD backlog and wait for a volunteer to pick it up