mherrmann/helium

Support for latest Selenium version 4.1.0

Opened this issue ยท 23 comments

Hi There,

This is more a kind of query rather than a Bug/Issue.

Currently in the base requirement the selenium package is tagged with 3.141.0. Will it be supporting latest selenium that is 4.1.0 ? Is there any plan to upgrade?

Thanks

Hi, I don't have immediate plans but I use helium in various production setups so it's not unlikely that at some point I will have to switch to selenium 4. I am also always happy to receive pull requests.

Thanks for reply @mherrmann , I am ready to put efforts for adding minimum compatibility with selenium 4.1.0 (not using new features, but supporting all existing flows with selenium 4). Can you please point out what area/code part I should start checking for the required updates?

I really fill updating the compatibility with 4.1.0 would really support the community who wants to use helium with latest (and fastest) selenium 4.

Thanks!

That would be great, thank you @abhijitmamarde. You could start by incrementing the Selenium version in requirements/base.txt, then following the Contributing instructions in the README to see how to run all necessary tests.

Lots of people requesting it, nobody working on it. I'll be happy to accept a PR that implements it. I won't implement it myself for any foreseeable future.

I just ran the tests on selenium==4.1.0 and I see some failing tests.

----------------------------------------------------------------------
Ran 59 tests in 129.253s

FAILED (failures=1, errors=33)
Test failed: <unittest.runner.TextTestResult run=59 errors=33 failures=1>
error: Test failed: <unittest.runner.TextTestResult run=59 errors=33 failures=1>

The same failing tests are on selenium=3.141.0

----------------------------------------------------------------------
Ran 59 tests in 129.844s

FAILED (failures=1, errors=33)
Test failed: <unittest.runner.TextTestResult run=59 errors=33 failures=1>
error: Test failed: <unittest.runner.TextTestResult run=59 errors=33 failures=1>

Can you try to run on 3.141.0 and tell me if I'm doing something wrong?

it will be done in #78

ffo12 commented

Can someone please make Helium work with Selenium 4?

There are some significant changes in the API for Selenium 4 ( https://www.selenium.dev/documentation/webdriver/getting_started/upgrade_to_selenium_4/ ).
Doing the changes will take some effort since they introduced some new configuration objects. And I don't think it will be backward compatible, so it needs to be a separate branch.

There's already a pretty good implementation at #78.

@dntzbgh it is almost done here #78 but I'm not sure about these 4 failing tests.

By my guest to have a look and maybe you can find a better solution.

Also @mherrmann I don't have any ideea why with the offset is working.

======================================================================
FAIL: test_click_top_left (tests.api.test_point.PointTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 43, in test_click_top_left
    self.assert_result_is(
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 107, in assert_result_is
    self.assert_around(
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 38, in assert_around
    self.assertIn(
AssertionError: 50 not found in [-1, 0, 1] : Offset (50, 15) is not in expected range (0+-1, 0+-1).

======================================================================
FAIL: test_doubleclick_top_left (tests.api.test_point.PointTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 84, in test_doubleclick_top_left
    self.assert_result_is(
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 107, in assert_result_is
    self.assert_around(
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 38, in assert_around
    self.assertIn(
AssertionError: 50 not found in [-1, 0, 1] : Offset (50, 15) is not in expected range (0+-1, 0+-1).

======================================================================
FAIL: test_hover_top_left (tests.api.test_point.PointTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 56, in test_hover_top_left
    self.assert_result_is(
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 107, in assert_result_is
    self.assert_around(
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 38, in assert_around
    self.assertIn(
AssertionError: 50 not found in [-1, 0, 1] : Offset (50, 15) is not in expected range (0+-1, 0+-1).

======================================================================
FAIL: test_rightclick_top_left (tests.api.test_point.PointTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 69, in test_rightclick_top_left
    self.assert_result_is(
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 107, in assert_result_is
    self.assert_around(
  File "\desktop\github\selenium-python-helium\tests\api\test_point.py", line 38, in assert_around
    self.assertIn(
AssertionError: 50 not found in [-1, 0, 1] : Offset (50, 15) is not in expected range (0+-1, 0+-1).

----------------------------------------------------------------------
Ran 306 tests in 207.003s

FAILED (failures=4)
Test failed: <unittest.runner.TextTestResult run=306 errors=0 failures=4>
error: Test failed: <unittest.runner.TextTestResult run=306 errors=0 failures=4>

@petrisorionel I will have a look also.

ffo12 commented

God damn it looks like I have to change all my old scripts that used Helium.

Lots of people requesting it, nobody working on it. I'll be happy to accept a PR that implements it. I won't implement it myself for any foreseeable future.

then maybe the project should find a new owner, if someone is interested.

Why don't you do it @jonathanelscpt ?

Why don't you do it @jonathanelscpt ?

Would love to, but don't have time. However, as the project owner, if you don't have the willingness to maintain the project (which is completely OK, not a criticism), you should advertise for a new owner who has the time and interest to take it forward. Stating publically that you won't respond to issues, do any work other than occasionally reviewing PRs etc effectively renders the project dead.

It's a really great project, you've done really some lovely work here. Try to give it a new home.

you should advertise

I'm not a fan of fly-by comments like this that take 30 seconds to write and make suggestions of how other people should spend their time to give you a better thing for free. If you care about the project, invest your own time instead of asking other people to do it.

Stating publically that you won't respond to issues, do any work other than occasionally reviewing PRs etc effectively renders the project dead.

Again a criticism that takes few seconds to write to disparage what I do here for free. I use the code here every single day in my software. It works. If it were to break, I would fix it out of my own interest. I review PRs. I respond to comments. Don't call it dead.

Try to give it a new home.

Here too, I do not appreciate the prescriptive tone of how I should spend my time after you are explicitly unwilling to spend yours.

you should advertise

I'm not a fan of fly-by comments like this that take 30 seconds to write and make suggestions of how other people should spend their time to give you a better thing for free. If you care about the project, invest your own time instead of asking other people to do it.

Stating publically that you won't respond to issues, do any work other than occasionally reviewing PRs etc effectively renders the project dead.

Again a criticism that takes few seconds to write to disparage what I do here for free. I use the code here every single day in my software. It works. If it were to break, I would fix it out of my own interest. I review PRs. I respond to comments. Don't call it dead.

Try to give it a new home.

Here too, I do not appreciate the prescriptive tone of how I should spend my time after you are explicitly unwilling to spend yours.

You miss such a simple point and argue a false equivalency. No one is suggesting you should invest your time for nothing, only to consider sharing or handing over to someone who both the time and willingness (if there is such a person), and look beyond your own self-interest. If it's not actively maintained, it's in the process of being rendered dead software. I am (was) happy to participate, I sadly don't have the time to manage it. I'm reluctant to contribute to a project with a single owner who has neither the time nor willingness to maintain.

Sad to see a good project potentially go to waste due to ego. Over several years you've managed to find not one consistent contributor or maintainer. Hardly requires much introspection to see why.

to consider sharing ... and [to] look beyond your own self-interest

You do realize that we are having this discussion in an open source repository where I put in time and effort to let others use my work for free? I don't even know where to begin to explain that how this is sharing and how it is looking beyond my own interest.

It's in the process of being rendered dead software

Again, actively used everyday with a strong interest to keep it working.

I'm reluctant to contribute to a project with a single owner who has neither the time nor willingness to maintain.

You already said you wouldn't contribute because you "don't have" the time. Time that I, in contrast to you, make to share my work with others - for free. Your non-existent contributions will not be missed. ๐Ÿ‘‹

to consider sharing ... and [to] look beyond your own self-interest

You do realize that we are having this discussion in an open source repository where I put in time and effort to let others use my work for free? I don't even know where to begin to explain that how this is sharing and how it is looking beyond my own interest.

It's in the process of being rendered dead software

Again, actively used everyday with a strong interest to keep it working.

I'm reluctant to contribute to a project with a single owner who has neither the time nor willingness to maintain.

You already said you wouldn't contribute because you "don't have" the time. Time that I, in contrast to you, make to share my work with others - for free. Your non-existent contributions will not be missed. wave

I said I didn't have time to maintain, which was in response to your question, not that I didn't have time to contribute. I was very interested in doing so until I read the README and the tone of your responses to several open issues. You don't appear to read very well.

Hey, just chiming in as an outside observer to this project. First, Selenium project would love to see Helium support v4+. If anyone would like help understanding the Selenium implementations, please reach out to us in #selenium-tlc channel on Selenium Slack/irc https://www.selenium.dev/support/#ChatRoom.

As for this tiff... how would "a new owner" be different from someone else stepping up to help out with this one? It's not like the current maintainer is gatekeeping if he says PRs are welcomed. Users of OSS projects often think of them the same way as commercial projects; as "theirs" instead of "ours." Trying to encourage that paradigm shift is a major burden of overwhelmed maintainers... but... it's literally an open source project - contribute, help out, participate, find something you have time to do and actually do it before you even think you might want to complain about something. From personal experience maintaining multiple projects used by millions of people, It's demoralizing to put so much of your free time into something and have someone who hasn't done anything come in and lay blame or belittle your efforts. That's simply unacceptable. Re-read The Man in the Arena if you need some perspective.

Hey, just chiming in as an outside observer to this project. First, Selenium project would love to see Helium support v4+. If anyone would like help understanding the Selenium implementations, please reach out to us in #selenium-tlc channel on Selenium Slack/irc https://www.selenium.dev/support/#ChatRoom.

As for this tiff... how would "a new owner" be different from someone else stepping up to help out with this one? It's not like the current maintainer is gatekeeping if he says PRs are welcomed. Users of OSS projects often think of them the same way as commercial projects; as "theirs" instead of "ours." Trying to encourage that paradigm shift is a major burden of overwhelmed maintainers... but... it's literally an open source project - contribute, help out, participate, find something you have time to do and actually do it before you even think you might want to complain about something. From personal experience maintaining multiple projects used by millions of people, It's demoralizing to put so much of your free time into something and have someone who hasn't done anything come in and lay blame or belittle your efforts. That's simply unacceptable. Re-read The Man in the Arena if you need some perspective.

A new owner would bridge the gap between accepting PRs and making it abundantly clear that you have absolutely no intention of doing any maintenance on a project whatsoever (and he's very clear on this point), outside of when you have personal gain for doing so. He goes as far as to point-blank state that he will simply ignore any new issues anyone raises. That renders the project effectively dead. A suggestion was also made to allow others to help manage the project, not only to find a new owner. Both were simply suggestions, not meant to offend.

It's a wonderful useful piece of software. No one is belittling anyone's past or present efforts here, simply noting the reality of the time they have available and the consequence thereof. This attitude problem probably stems from the project being a closed-source initiative that ultimately failed commercially. Absolutely fantastic that it was open-sourced, less so for the spirit in which it was done.

I would love to fulfil this role but I simply don't have the time, and honestly probably wouldn't have the skill to do it justice. But I certainly don't have any willingness to devote a lot of my time to project lorded over by a narcissistic prick with control issues.

Thank you for the encouraging words and perspective @titusfortner. :)