XPath语句未在IDE中执行

时间:2010-06-04 12:43:57

标签: testing selenium

我在重播为yahoomail页面创建的脚本时遇到了问题。在“收件人”文本字段中输入值的XPath语句不起作用。以下是我使用的XPath语句。

我第一次尝试使用

<tr>
 <td>type</td>
 <td>to</td>
 <td>mgtest@ymail.com</td>
</tr>

第二次尝试就是这句话

<tr>
 <td>type</td>
 <td>//div[@id= 'toid']/textarea[@id= 'to'][@name= 'to']</td>
 <td>mgtest@ymail.com</td>
</tr>

第三次尝试就是这个

<tr>
 <td>typeKeysAndWait</td>
 <td>//div[@ id= 'composebox']/div[@id= 'toid']/textarea[@id= 'to'][@name= 'to']</td>
 <td>mgtest@ymail.com</td>
</tr>

结果就像

[error] Element //div[@ id= 'composebox']/div[@id= 'toid']/textarea[@id= 'to'][@name= 'to'] not found

在之前的尝试中获得了类似的结果。 后来我试过

<tr>
 <td>type</td>
 <td>css=textarea.txtfield</td>
 <td>mgtest@ymail.com</td>
</tr>

邮件ID已输入文本字段,脚本工作正常。可能是什么原因。任何想法。?

我正在添加XPath语句

<div id="composepage">
<div id="composebox" class="roundcorner">
<div id="errorContainer"/>
  <input type="hidden" name="defFromAddress" value="mgtest@ymail.com"/>
  <div class="fields row">
  </div>
  <div id="toid" class="row">
  <label id="compose_to" for="to">
  </label>
  <textarea id="to" class="txtfield" name="to" autocomplete="off" tabindex="1" style="overflow: hidden; height: 19px;"/>
  </div>

2 个答案:

答案 0 :(得分:0)

您编写了无效的xpath查询。

应该是

//div[@ id='composebox']/div[@id='toid']/textarea[@id='to' and @name='to']

答案 1 :(得分:0)

<textarea>有一个id属性,该属性应该是唯一的,因此您的第一个定位器to应该可以正常工作。执行selenium命令时,元素可能不存在或不可见。我建议如下:

waitForVisible | id=to | 60000
type | id=to | mgtest@ymail.com

如果您的元素具有唯一ID,并且您需要使用XPath,则只需要与具有id属性的最近元素相对。