Uh oh!
There was an error while loading. Please reload this page.
PageFactory enhancement. Selenium for .Net - #306
Conversation
TikhomirovSergey
commented
Feb 26, 2015
Please look at this PR. I think it could be useful for .NET users :) |
jimevans
commented
Mar 17, 2015
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? |
TikhomirovSergey
commented
Mar 18, 2015
Hi @jimevans
I am sorry for my English :) |
TikhomirovSergey
commented
Mar 18, 2015
Maybe... Can I improve something before you will start to work on it? |
jimevans
commented
Mar 20, 2015
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. |
jimevans
commented
Mar 27, 2015
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. |
TikhomirovSergey
commented
Mar 27, 2015
Thanks @jimevans for the merging! |
TikhomirovSergey
commented
Mar 27, 2015
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. |
TikhomirovSergey
commented
Mar 27, 2015
@jimevans I would like to improve something |
jimevans
commented
Mar 27, 2015
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. |
TikhomirovSergey
commented
Mar 27, 2015
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