kellyxie 发表于 2009-10-30 12:30:30

qtp如何描述DIV层

下面代码如何将“发件人: 谢惠卿 <xiehq@china-channel.com> ”取出来?



<div style="border-bottom: 1px solid rgb(205, 205, 205);" title="邮件发送时间: 2009-10-30 10:59:58 
发件人: 谢惠卿 <xiehq@china-channel.com> 
主题: Rulai项目跟踪 
大小: 8.80 KB" id="1256871598.M980978P31614V0000000000000806I0000000000B8C159_0.mail.china-channel.com,S=9008:2,S" class=""><span class="mailRead" ondblclick="JS.readMailWithforbiddenEvent('1256871598.M980978P31614V0000000000000806I0000000000B8C159_0.mail.china-channel.com,S=9008:2,S',event)" onclick="JS.getMailWithforbiddenEvent(0,event)"><table width="100%" cellspacing="2" cellpadding="0" border="0" style="table-layout: fixed;">                       <tbody><tr>                         <td width="25" valign="top" align="center" style="padding-top: 3px;"><img src="../images/color1/read.gif"/></td>                         <td><span class="ellipsis"><a onclick="JS.eqxmpp('xiehq@china-channel.com')" href="#"><img border="0" align="absmiddle" src="../images/eq_talk.gif"/></a> 谢惠卿,</span></td>                         <td width="142" valign="top" style="text-indent: 4px; font-size: 11px; white-space: nowrap;">2009-10-30 10:59:58</td>                      </tr>                      </tbody></table>                      <table width="100%" cellspacing="2" cellpadding="0" border="0" style="table-layout: fixed;">                      <tbody><tr>                          <td width="25" valign="top" align="center">                            <input type="checkbox" value="checkbox" name="checkbox" onclick="JS.thisinputClick(this);"/>                          </td>                          <td valign="top"><span class="ellipsis">Rulai项目跟踪</span></td>                          <td width="50" valign="top" style="text-align: right;">                                        <img border="0" style="display: none;" src="../images/color1/attach.gif"/>                                         <img style="display: none;" alt="已答复" src="../images/color1/reply.gif"/> <img style="display: none;" alt="已转发" src="../images/color1/relay.gif"/></td>                      </tr>                      </tbody></table></span></div>

dftx511619 发表于 2009-10-30 16:13:52

我给你提供三个方法,有个条件, 就是需要知道 这个Div的父节点,但是你如果你知道这个Div的 ID值, 就简单多了

第一种方法:

这种方法局限于你知道Id的情况下,
Browser("").Page("").WebElement("html id:=" & divId).GetROProperty("title")

第二种方法:

1. 如果这个Div是在Page页下,
   请这样做:
   Set bpObj = Browser("").Page("").Object 这样你就可以像Js那样来操作你所需要的对象了
   Set divObjs = bpObj.body.document.getElementsByTagName("div")
如果知道Div的ID, 那就 Set curDiv = bpObj.body.document.getElementById("divId")

然后, 你就可以获取它的属性值了, title !

2. 如果这个Div是在Frame下面, 方法类似!

只是 Set bpObj = Browser("").Page("").Frame("").Object

第三种方法

找到这个Div的父节点
然后通过获取其父节点下的 Div的属性来 获取

[ 本帖最后由 dftx511619 于 2009-10-30 16:20 编辑 ]

kellyxie 发表于 2009-11-1 21:08:32

你好,使用下面格式,系统跑不了,请校正
DimemailDivParent,emailDivs
Set emailDivParent = Browser("企业邮局").Page("企业邮局").Frame("mail").WebElement("html id: = list","html tag:=DIV").Object
Set emailDivs = emailDivParent.ChildObjects(emailDiv)

For i = 0 to emailDivs.count()-1
        emailDivTitle = Browser("企业邮局").Page("企业邮局").Frame("mail").WebElement("html id: = list","html tag:=DIV").ChildObjects("index:=0").GetROProperty("title")
        msgbox (emailDivTitle)

Next

kellyxie 发表于 2009-11-1 21:16:16

补充:1.目的层DIV的id是变化。
   2.假设已识别到目标层DIV,欲获取title,使用如下脚本,结果msgbox内容空白,是因为title信息存在换行吗?图在上面
Dim title
title =Browser("企业邮局").Page("企业邮局").Frame("mail").WebElement("html id:=1256896858.M119255P2639V0000000000000806I0000000000B8C09D_0.mail.china-channel.com,S=2065028:2,S").GetROProperty("title")
msgbox(title)

blueeagle999 发表于 2009-11-3 10:13:15

有时候没必要舍近求远,你先通过class,name之类的属性来识别这个控件试试看,我看你这个控件的CLASS好像是currentMail,通过这个属性再加上个别的属性先去识别下看看。
页: [1]
查看完整版本: qtp如何描述DIV层