Improve the behavior of find_all
find_all had the following bug:
Imagine you have the following code:
for label in find_all(Text('Label')):
print(Link(to_right_of=label).href)
The bug was that this used the same Link for each label, producing output for links that actually were not to_right_of the label in the loop.
Furthermore, this release also changes the behavior of find_all in the following way. Say you have four buttons in a 2x2 grid:
Previously, the following code used to return two buttons:
find_all(Button("Duplicate Button"), below=Button("Duplicate Button"))
(Namely, the two buttons in the second row, because they are both under a "Duplicate Button").
Now, this only returns one button (the first button in the second row). If you want both, you can still do:
for button in find_all(Button("Duplicate Button")):
find_all(Button("Duplicate Button", below=button))
This release is a major version bump (6.x.x) because it changes the elements returned by Helium's API and may therefore be backwards-incompatible.