fixed@AndroidFindBy and @iOSFindBy for native app automation #184 and iOSFindBy & AndroidFindBy annotations are ignored #211. Now the choosing is by-strategy is depending on only driver class. There was outdated code. Now it is updated. Summary:
So when here is AnroidDriver and current context is native app then will be choosen By-strategy defined via AndroidFindBy/AndroidFindBys/AndroidFindAll annotations. When here is IOSDriver and current context is native app then will be choosen By-strategy defined via iOSFindBy/iOSFindBys/iOSFindAll. annotations.
By-strategy that is built using defaul FindBy/FindBys/FindAll will be used for browser/webview content or when there is no specific annotations for Android/iOS native apps.
There is one specific remark. If somebody desires to use their own Webdriver implementation then it has to implement HasCapabilities.
AutomationName has been added in order to define the desired automation type correctly in Capabilities.
Now the class ContentMappedBy has overridden toString() method
I fixed a problem that is not reported yet.
How to reproduce:
//Right now we are testing an Android app@iOSFindBy(iOSlocator)
@FindBy(css = "e.e1.e2")
privatee;
or
//Right now we are testing an iOS app@AndroidFindBy(className = "android.widget.TextView")
@FindBy(css = "e.e1.e2")
privateWebElemente;
At these cases By-locator defined via FindBy is used. If we are testing a native app the test is failed because of UnsupportedCommandException. CSS and link text are not supported by automation tools.
So now NoSuchElementException will be thrown an this case insted of UnsupportedCommandException. This minor bug here since 1.7.0 version.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change list:
So when here is AnroidDriver and current context is native app then will be choosen By-strategy defined via AndroidFindBy/AndroidFindBys/AndroidFindAll annotations. When here is IOSDriver and current context is native app then will be choosen By-strategy defined via iOSFindBy/iOSFindBys/iOSFindAll. annotations.
By-strategy that is built using defaul FindBy/FindBys/FindAll will be used for browser/webview content or when there is no specific annotations for Android/iOS native apps.
There is one specific remark. If somebody desires to use their own Webdriver implementation then it has to implement HasCapabilities.
How to reproduce:
or
At these cases By-locator defined via FindBy is used. If we are testing a native app the test is failed because of UnsupportedCommandException. CSS and link text are not supported by automation tools.
So now NoSuchElementException will be thrown an this case insted of UnsupportedCommandException. This minor bug here since 1.7.0 version.