minkphp / minkphp/Mink

In TraversableElement->findField(), provide a way to find the first visible item rather than the first item.

Open
#311 12 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

feature
Dominant language
PHP
Stars
1.6k
Forks
286
PR merge metrics
No merged PRs in 30d

Description

TraversableElement->fillField(), clickLink(), etc., use findField(), findLink(), etc. to know what to click or fill.

Might it not be better to define new find functions which find only visible elements? For example, in addition to findLink(), a findVisibleLink() would cycle through all links and find the first visible one.

In turn, clickLink() would use findVisibleLink() rather than findLink() to know what to click.

Take the following use case: a website contains several links "xyz", but only one is visible at any given time. With the current method, if the first xyz is invisible, clickLink(xyz) fails. With the proposed method, the visible element could be clicked.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the TraversableElement->findField(), findLink(), fillField(), and clickLink() entry points named in the issue. Inspect how matching elements and visibility are currently handled, then determine the affected find and interaction methods. Done means matching interactions select the first visible item without breaking existing behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
testing-qa, web-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.