browser
browser copied to clipboard
$selector ambiguity
The method parameter $selector
is used in several methods and means different things depending on the context:
-
css selector:
->assertSeeIn('h1', 'some text')
or->dump('h1')
-
link selector (link id/title/text/image alt):
->follow('some link')
-
button selector (button id/value/alt):
->click('button')
-
field selector (input id/name/label):
->fillField('name', 'Kevin')
-
json search expression:
->assertJsonMatches('foo.bar.baz', 1)
or->dump('foo.bar.baz')
(when content-type is json)
I think adding good docblocks would help but there are some things that can be improved:
Right now, methods that select elements with link/button/field selectors cannot use css selectors to find the element. I think, if unable to find the element via the link/button/field selector, assume a css selector and try.
This opens up the possibility of clicking buttons via tr:contains(First Post) a.btn
(think admin list of entities each with an edit button).
Oh, yes please.
I have been trying different values because I dont 100% know what "selector" means for different methods. I also tried .checkbox label
without success.
I have been slowly working on removing mink and replacing with a system that will help here. It will include an "escape hatch" where you can take complete control with the Dom crawler.
Should have a PR ready in the next few weeks.