Simone Romani
Simone Romani

Reputation: 435

Selenium WebDriver click child element

I'm using selenium and I want to click a child element with 2 as value.

This is the full code:

<div class="dialer-keypad">
    <div class="dialpad-row">
        <div class="key">
            <div class="value">1</div>
            <div class="letters"></div>
        </div>
        <div class="key">
            <div class="value">2</div>
            <div class="letters">ABC</div>
        </div>
        <div class="key">
            <div class="value">3</div>
            <div class="letters">DEF</div>
        </div>
    </div>
    <div class="dialpad-row">
        <div class="key">
            <div class="value">4</div>
            <div class="letters">GHI</div>
        </div>
        <div class="key">
            <div class="value">5</div>
            <div class="letters">JKL</div>
        </div>
        <div class="key">
            <div class="value">6</div>
            <div class="letters">MNO</div>
        </div>
    </div>
</div>

So my question is How can I click this element?

<div class="value">2</div>

Upvotes: 0

Views: 2636

Answers (2)

iamsankalp89
iamsankalp89

Reputation: 4739

Simply use xpath

//div[contains (@class,'value') and contains (text(),'2')]

Upvotes: 0

Craig Ayre
Craig Ayre

Reputation: 1173

You should be able do this quite succinctly with XPath:

//*[contains(@class, 'value') and text()='2']

Alternatively, assuming that the markup was static you could target the element using specific indices. For example:

.dialpad-row:first-child .key:nth-child(2) .value

Upvotes: 3

Related Questions