QTP читать веб-контент - PullRequest
1 голос
/ 04 июня 2010

У меня есть WebTable в QTP как:

<TBODY>
  <TR></TR>
  <TR>
    <TD>
      <TABLE>
        <TR>
          <TD>
            <DIV class=divRow id=divRow_d_0>
              <DIV class=divFirst>1</DIV>
              <DIV class=divData>toto</DIV>
              <DIV class=divData>fofo</DIV>
            </DIV>
            <DIV class = divRow id=divRow_d_1>
              <!--same structure here-->
            </DIV>
          </TD>
        </TR>
      </TABLE>
    </TD>
  </TR>
  <TR></TR>
</TBODY>

Здесь я хочу записать значения divFirst и divData для каждого divRow, в идеале, хранить каждый divRow в строке.

Может кто-нибудь сказать мне, как я могу это сделать?

Большое спасибо

1 Ответ

3 голосов
/ 06 июня 2010

Это похоже на работу:

Set RowDesc = Description.Create()
RowDesc("class").Value = "divRow"
RowDesc("index").Value = 0

Set DataDesc = Description.Create()
DataDesc("class").Value = "divData"

While Browser("Browser").Page("Page").WebElement(RowDesc).Exist(1)
    Set Row  = Browser("Browser").Page("Page").WebElement(RowDesc)
    RowDesc("index").Value = RowDesc("index").Value  + 1
    MsgBox Row.WebElement("class:=divFirst").GetROProperty("innertext")
    DataDesc("index").Value = 0

    While Row.WebElement(DataDesc).Exist(1)
        Set Datum = Row.WebElement(DataDesc)
        MsgBox Datum.GetROProperty("innertext")
        DataDesc("index").Value = DataDesc("index").Value + 1
    Wend
Wend

Причина, по которой я использую описательное программирование с индексом, который закончится, заключается в том, что ChildObjects не возвращает эти WebElements

(Очевидно, вы захотите сделать что-то кроме MsgBox со значениями.)

...