XPath expression for element based on containing text

12,910

Can you try with this :

//div[contains(.,'security administrator')]
System.out.println(driver.findElementByXPath("//div[contains(.,'security adm')]").getText()) 

gave me security administrator

Share:
12,910
ssc-seifert
Author by

ssc-seifert

Updated on June 05, 2022

Comments

  • ssc-seifert
    ssc-seifert about 2 years

    I'm running out of ideas. I have identified for my Selenium test an div based on its text ("security administrator ") contained. Unfortunately, the div contains two other divs. See the example.

    <div class="rich-stglpanel-marker">
        <div class="rich-stglpnl-marker" id="j_id194:j_id198:2:j_id199_switch_on" style="display: none"></div>
        <div class="rich-stglpnl-marker" id="j_id194:j_id198:2:j_id199_switch_off"></div>
        security administrator 
    </div>
    <div class="rich-stglpanel-marker">
        <div class="rich-stglpnl-marker" id="j_id194:j_id198:2:j_id199_switch_on" style="display: none"></div>
        <div class="rich-stglpnl-marker" id="j_id194:j_id198:2:j_id199_switch_off"></div>
        technical administrator 
    </div>
    ... and so on
    

    I tried that expressions:

    //div[text()='security administrator']
    //div[text()='security administrator ']
    //div[text()='security administrator&nbsp;']
    //div[text()='security administrator${nbsp}'] (this is a special hack from selenium)
    

    Nothing works. Any ideas?

    Thanks in advance.