1
下面是HTML代码,我试图为表格内的用户名文本框做一个XPath表达式。为什么我的XPath表达式“无法定位元素”?
我尝试下面的表达式:
- 遍历表:
//table[@id='Login:LoginScreen:LoginDV']
- 接触到的用户名:
//input[@id='Login:LoginScreen:LoginDV:password']
- 要达到按钮登录:
//div/div[2]/div/table/tbody/tr/td/table/tbody/tr[4]/td[5]/a/span[2]
我收到以下错误消息:
找不到元素:
{"method":"xpath","selector":"//input[@id='Login:LoginScreen:LoginDV:username']"}
我很新的XPath。我正在阅读谷歌的内容,并尝试从我的阅读中了解到的内容。
<div id="mainContent">
<div id="Login" class="content">
<div id="Login:LoginScreen:ttlBar" class="screentitle">
<input id="Login:LoginScreen:_msgs" type="hidden" name="Login:LoginScreen:_msgs"/>
<span id="Login:LoginScreen:_msgs_msgs"/>
<div id="Login:LoginScreen:0" class="info">The submitted user name/password is invalid.</div>
<table id="Login:LoginScreen:LoginDV" class="dv ">
<tbody>
<tr>
<td valign="top">
<table id="Login:LoginScreen:LoginDV:0" class="dvColumn" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="empty-cell">
<img height="1px" width="1px" border="0" src="images/trans_pixel.gif"/>
</td>
<td class="empty-cell">
<img height="1px" width="1px" border="0" src="images/trans_pixel.gif"/>
</td>
<td class="inputLabel">
<span>User name</span>
</td>
<td class="empty-cell">
<img height="1px" width="1px" border="0" src="images/trans_pixel.gif"/>
</td>
<td class="inputValue">
<input id="Login:LoginScreen:LoginDV:username" class="textBox" type="text" contenteditable="true" onblur="EventHandlers.onBlur(event)" onfocus="EventHandlers.onFocus(event)" helptext="__UseTitle__" size="20" style="text-align: left" delayonchange="false" onclick="event.cancelBubble = true;" onkeydown="DHTML.cancelBubbleIfNoAltKeyOrEnter();" onchange="if (EventHandlers.valueChanged(event, this)==false) return false;" value="" label="User name" name="Login:LoginScreen:LoginDV:username"/>
</td>
</tr>
<tr>
<tr>
<tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
你尝试过什么XPath表达式? –
我不确定它是否只有我,但我无法在该HTML代码段中找到任何输入元素。 –
<表ID = “登录:LoginScreen:LoginDV” 类= “DV ”>
回答
它看起来像实际的问题可能是畸形的XML:行30,31和32是没有任何关闭的开放标签。
我将您的XML复制到我的文本编辑器Notepad ++中,该文本编辑器安装了XML Tools插件。将这三个标记更改为
<tr />
后,我使用插件中的XPath表达式评估程序来尝试原始XPath语句//input[@id='Login:LoginScreen:LoginDV:username']
,并发现该节点没有任何问题。(我试过,包括截图,但我的代表处是不够高。截图可以发现here)。
来源
2014-07-17 19:11:02
相关问题