Skip to content
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

pypom ? #31

Open
matrixise opened this issue Feb 2, 2018 · 1 comment
Open

pypom ? #31

matrixise opened this issue Feb 2, 2018 · 1 comment
Labels

Comments

@matrixise
Copy link

Hi,

I already use PyPOM, developed by Mozilla, do you know this library?

@kyleect
Copy link
Member

kyleect commented Feb 2, 2018

I have seen it. I didn't fit my needs which is partially what drove me to write this library.

Totally valid question though. It really highlights the fact that the README isn't highlighting the advantages of vom versus other libraries or adhoc page objects. I'm working on that.

In the mean time the advantages/differences of vom:

  • The find_element/s methods return page objects not web elements.
  • These methods also allow you to define a custom page object implementations. This is a very powerful pattern in my experience.
  • Methods not defined on the page object are proxied automatically to the root web element.
  • Not having dealing with the driver instance or root web element directly.
  • Utility methods such as find_element/s_by_text which works like find_element/s_by_link_text but across any element.

To address PyPOM specifically:

  • I'm very opinionated about page object design. I personally feel that no page object "owns" the page title or url. The window owns this.
  • I'm also not a huge fan of introducing the concept of "pages" since pages and web elements can be represented by the same page object pattern. Pages are just really really big web elements.

I hope that helped. I'd love to hear more feedback/questions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants