Search code examples
phpcssselenium-webdriverwebdrivercodeception

Codeception with Webdriver - Clicking button with same name/value/type


I'm trying to find out how I can use $I->click with codeception for a button that shares the same name/value/type as another button on the same page. Examples are:

<input class="submit_btn uppercase" type="submit" name="go" value="/GO/"> // button I want to click

AND

<input class="submit_btn" type="submit" value="/GO/" name="go"> // button I don't want to click

What syntax should I use to delineate between the two? I've tried many different things including using the CSS locator after the button name like:

$I->click('go', '.uppercase'); // 2nd item is CSS locator

I've also tried:

$I->click('go', '.submit_btn uppercase'); // 2nd item is CSS locator


Solution

  • Firstly, I believe you should find a nearest parent tag that has id defined. I'll assume that there is a parent tag that has id="formId" Here is the code to click that element by CSS selector:

    $I->click('#formId > input.submit_btn.uppercase');
    

    There is another way that you could click this element by xpath:

    $I->click('//input[@class="submit_btn uppercase"]');