【发布时间】:2015-10-23 09:38:53
【问题描述】:
我正在尝试为似乎在嵌套 span 标签中的下拉元素计算 XPATH 或 CSS。 我想找到标签 我可以在下拉列表上方找到文本,但我无法通过 span 标签找到下拉元素。
我有 XPATH 可以访问下拉列表上方的文本。 XPATH 是:
//span[contains(text(), "Select a data preview to import configuration from")]
如果我尝试使用previous::span[2] 它会走得太远。
//span[contains(text(), "Select a data preview to import configuration from")]/preceding::span[2]
HTML sn-p 是:
<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>
我可以使用什么 XPATH 或 CSS 来访问下拉菜单? CSS 更快,那很好。
我想我现在已经解决了一个问题,但不确定这是否是一个好方法。 这个对我有用:
//span[contains(text(), "Select a data preview to import configuration from")]/preceding::span[1]//../span//../select
- 首先搜索带有文本 Select a data preview to import configuration from 的 span 元素
- 然后找到第一个span标签/preceding::span[1]
- 然后找到第一个跨度标签下方的所有跨度标签 //../span
- 然后在 span 标签内的任何位置找到下拉菜单 //../select
如果结构发生变化,使用 //../select 它仍然可以工作。
这是正确的方法吗?
谢谢, 里亚兹
【问题讨论】:
-
您要查找哪个元素?
-
选择标签,
标签: css selenium xpath selenium-webdriver webdriver