Its use can be lighter. That is, the wrapper can be easier to use.
Helium helps with maintaining automation tests as well. click("Compose") is infinitely more maintainable than document.getElementById("eIu7Db").click(). (I just took this example from Gmail's web interface.)
That's just some superficial changes that often lead to confusion and other negative consequences down the road, especially when not handled carefully.
I would much rather directly rely on Selenium's stable APIs than someone else's wrapped APIs that is opionated and could be incomplete, incorrect, outdated and potentially unmaintained someday. There are always much more resources put into Selenium than these add-ons.
If I really want, I can choose a few APIs that I actually use and wrap them within my codebase. That's more reliable than this.
How do you compose low level operations like “click here” into composable modules like:
loginAsUser(user)
id = createBooking(user)
loginAsAdmin()
approveBooking(id)
?
Is it the same as selenium? Do whatever you want your self?
That’s what I’m talking about. Unless you have high level composable modules that let you express high level test activities then your tests will always fall apart.
The syntax of the low level operations doesn’t matter because you will never ever care about a click(“compose”).
That’s not a test.
A test might be:
createEmail()
attachFile(…)
… whatever your bespoke business requirements are.
Having fancy wrappers?
Is it nicer? Sure.
Does it meaningfully improve the tests, maintaining tests?
Nope.
Because at the end of the day the low level operations will be bespoke, nasty, messy and different for each website; that’s why you wrap them up in functions and compose them.
At least, in my experience; this looks a lot like cypress; a high level set of operations with sensible defaults for easy tasks.
…but, practically, I’m skeptical that hiding the low level nasty details actually makes them go away; it’s smoothing them over for the “happy path”; but automation tests are like 90% edge cases.
> It’s use can be lighter
I don’t think that’s the generally accepted meaning of a light weight framework.
Helium helps with maintaining automation tests as well. click("Compose") is infinitely more maintainable than document.getElementById("eIu7Db").click(). (I just took this example from Gmail's web interface.)