0
votes

I am trying to work out the XPATH or CSS for the drop down element which seems to be in nested span tags. I want to find the tag I can find the text above the drop down but i cannot go down the span tags to get to the drop down element.

I have XPATH to get to the text above the drop down. The XPATH is:

//span[contains(text(), "Select a data preview to import configuration from")]

If i try to use preceding::span[2] it goes too far down.

//span[contains(text(), "Select a data preview to import configuration from")]/preceding::span[2]

The HTML snippet is:

<div class="GPI5XK1CM" style="padding-right: 16px;position:relative;outline:none;" __idx="0" onclick="">
<div style="position:absolute;display:none;"/>
<div>
<span/>
<span>
<span title="" style="font-weight:bold;">Select a data preview to import configuration from</span>
</span>
<span/>
<span>
<span class="" title="" style="display:block;"/>
</span>
<span/>
<span/>
<span/>
<span/>
<span/>
<span>
<span class="" title="None" style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;empty-cells:show;">
    <select tabindex="-1">
        <option selected="selected" value="None">None</option>
        <option value="CRMINVALID_07102015">CRMINVALID_07102015</option>
        <option value="LADEMO_crm2_Chrome">LADEMO_crm2_Chrome</option>
        <option value="LADEMO_CRM_DONOTCHANGE_CHROME">LADEMO_CRM_DONOTCHANGE_CHROME</option>
        <option value="LADEMO_ESCR_DO_NO_CHANGE_CHROME">LADEMO_ESCR_DO_NO_CHANGE_CHROME</option>
        <option value="Lademo_odb_Data">Lademo_odb_Data</option>
        <option value="test">test</option>
    </select>
    </span>
    </span>
</div>

What XPATH or CSS could i use to get to the drop down? CSS is faster, that would be good.

I think I have worked one out now but not sure if it is a good way to do it. This one works for me:

//span[contains(text(), "Select a data preview to import configuration from")]/preceding::span[1]//../span//../select
  • First search for a span element with the text Select a data preview to import configuration from
  • then find the first span tag /preceding::span[1]
  • then find all of the span tags below the 1st span tag //../span
  • then find the drop down wherever it is within the span tags //../select

Using //../select if the structure changes it will still work.

Is this the correct way?

Thanks, Riaz

3
Which element do you want to find? - Mosam Mehta
The Select tag, <select tabindex="-1"> - Riaz Ladhani

3 Answers

0
votes

I've got a couple CSS selectors that you can try. The first one should be enough but if not, the second one should be unique.

"select[tabIndex='-1']"
"span[title='None'] > select[tabIndex='-1']"
0
votes

you can use following xpath to get all option value:

//span[@title='None']/select/option/text()

0
votes

An example for CSS. This assumes only one span titled 'None'.

$$("span[title='None']>select>option[value='whateveroptionyouseek']")

You could also probably get away with:

$$("span[title='None'] option[value='whateveroptionyouseek']")