New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove safari-only restriction for browserName capability #127
Remove safari-only restriction for browserName capability #127
Conversation
I think the build/status check is stuck, it's been pending for over a week. |
I noticed the stuck build was cancelled, so I triggered a new build with some empty commits, I'm getting the keyboard test failing:
This change should not affect that at all. Should I push another commit to trigger another build? |
I've manually triggered the build, and am keeping an eye on it. |
I agree old ways of doing things should be supported until there is a better way. Thanks for delving into the problem and coming up with a fix! |
Build works fine now. Can you squash this into a single commit? Then I can merge. |
5454119
to
6d2ac5b
Compare
@imurchie squashed into a single commit, thanks! |
Also, I don't think this triggered a new build since the original commit is the same as the original one that was stuck/cancelled. I don't have the ability to trigger a new one (if it's needed). |
This restriction broke compatibility with Selenium Grid where the browserName capability is used to define the node's available simulator/devices.
6d2ac5b
to
04add76
Compare
I changed the commit to force a build just in case, so we don't have to keep playing tag. Hopefully it passes 🙏 |
Thanks for this! |
Fixes appium/appium/issues/6412
#5 added desired capabilities restraints, which restrict the allowed
browserName
for iOS to be only one of['Safari', 'safari']
. However, the Appium docs have long recommended usingbrowserName
as a way to specify the type of simulator/device being used, as shown in the example Grid node configuration:This means existing Selenium Grid -> Appium node configurations using
browserName
to specify node sessions in this way are effectively incompatible with Appium v1.5 since you now get the error:Removing the specific
[Ss]afari
browserName
restriction allows the Selenium grid to find the node properly, in which case the desired caps are passed along to the Appium server andbrowserName
is ignored (since theapp
capability takes precedence). The restrictions may overall be a good thing and catch misconfigurations, but I think they should be backwards compatible with existing implementations. There is not really an alternative for Selenium Grid to be able to match nodes that I know of aside from using the catch-allapplicationName
capability, which is not well documented and requires modifying existing configurations.I've tested this with Appium v1.5.1 and Selenium Grid 2.52.0. Will follow-up for
appium-android-driver
if this is accepted.