我正在尝试为下拉元素设计XPATH或CSS,这似乎是嵌套的span标签。 我想找到标签 我可以在下拉列表上方找到文本,但我无法沿着span标签找到下拉元素。
我有XPATH来查看下拉列表上方的文本。 XPATH是:
//span[contains(text(), "Select a data preview to import configuration from")]
如果我尝试使用前面的:: span [2],那就太过分了。
//span[contains(text(), "Select a data preview to import configuration from")]/preceding::span[2]
HTML代码段为:
<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如果结构发生变化,它仍然有用。
这是正确的方法吗?
谢谢, 里亚兹
答案 0 :(得分:0)
我有几个你可以尝试的CSS选择器。第一个应该足够但如果没有,第二个应该是唯一的。
"select[tabIndex='-1']"
"span[title='None'] > select[tabIndex='-1']"
答案 1 :(得分:0)
您可以使用以下xpath获取所有选项值:
//跨度[@标题= '无'] /选择/选项/文本()
答案 2 :(得分:0)
CSS的一个例子。这假定只有一个标题为“无”的范围。
String urlIcon = SERVICEURL + "/GetWeatherIcon/" + weather.getWeather().get(0).getIcon();
InputStream iconStream = ExecuteRequestService(urlIcon);
BufferedReader rdIcon = new BufferedReader(new InputStreamReader(iconStream));
String jsonIcon = rdIcon.readLine();
JSONObject objIcon = new JSONObject(jsonIcon);
JSONArray jsonArray = objIcon.getJSONArray("GetWeatherIconResult");
byte[] bytes = new byte[jsonArray.length()];
for(int i=0; i<jsonArray.length(); i++){
bytes[i] = (byte) jsonArray.getLong(i);
}
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
weather.setImage(bmp);
你也可以逃脱:
var e = document.getElementById('yourElement');
var marLeft = getStyle(e, 'margin-left');
alert(marLeft);
/* and if a number needs to be in px... */
alert(marLeft + 'px');
////////////////////////////////////
/***
* get live runtime value of an element's css style
* http://robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element
* note: "styleName" is in CSS form (i.e. 'font-size', not 'fontSize').
***/
var getStyle = function (e, styleName) {
var styleValue = "";
if(document.defaultView && document.defaultView.getComputedStyle) {
styleValue = document.defaultView.getComputedStyle(e, "").getPropertyValue(styleName);
}
else if(e.currentStyle) {
styleName = styleName.replace(/\-(\w)/g, function (strMatch, p1) {
return p1.toUpperCase();
});
styleValue = e.currentStyle[styleName];
}
return styleValue;
}