Domanda

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?

È stato utile?

Soluzione

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);
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top