Question

I have 2 buttons with the same name. For design reasons only one of them is visible at the same time.

I want to click on any visible button.

If first button is hided this expression

$this->byCssSelector('[name="saveAndClose"]')->click()

returns

Element is not currently visible and so may not be interacted with

How to click on visible button?

Was it helpful?

Solution

I have written simple code to this.

public function clickOnDisplayedElementByName($name)
    {
    $elements = $this->elements($this->using('css selector')->value('[name="' . $name . '"]'));
    foreach ($elements as $element)
        {
        if ($element->displayed())
            {
            $element->click();
            return;
            }
        }
    $this->fail('There is no visible elements with name ' . $name);
    }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top