-
-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
PageFactory enhancement. Selenium for .Net #306
PageFactory enhancement. Selenium for .Net #306
Conversation
Please look at this PR. I think it could be useful for .NET users :) |
I have a redesign of this pull request that I believe would provide the extension points you require, but more closely adheres to the existing architecture and coding conventions. I would need to borrow some of the code (with attribution) from this pull request. Would that be an acceptable compromise? |
Hi @jimevans
I am sorry for my English :) |
Maybe... Can I improve something before you will start to work on it? |
Sure, feel free to make whatever changes you want to. In general, I'd like to do away with the "locator factory that produces only one locator" pattern, but I also don't want to force the use of reflection to create the locators. I think I have a way to accomplish that in my local branch, but I'm trying to be careful about backward compatibility. |
I've merged a version of this pull request in 689276b. It's not merged verbatim, but does give the general extension points you've asked for. There is a custom decorator interface, I've also removed some of the complicating pieces of the pull request, like the forcing of the default locator to be settable with a If you have further improvements or fixes, feel free to open a new pull request, but let's use this code base as the new baseline for new features. |
Thanks @jimevans for the merging! |
I like it! 👍 Ok. ...And most of code that I've tried to propose to Selenium now I can realease on Appium-side using standart engines or extending them. |
@jimevans I would like to improve something |
I'm not seeing the use case for opening up the proxy engine, but this is hardly the best place for such a discussion. Perhaps the IRC channel would be a better venue for something like a more detailed hashing out of the issues. |
Let it be as it is. It is cool now... I am sorry :) |
These tools were implemented the perfectly similar way as it was done in Selenium Java. Now it is possible to design your own attributes/algorithms in order to decorate fields/properties by:
Default implementations are already here. They can be extended, their virtual methods can be overridden.
Appuim project needs this in order to provide the following use case (field of page/screen object):
It is already present on the java-client side. If it is interesting details are below:
appium/java-client#68
appium/java-client#126
appium/java-client#140
appium/java-client#145