我正在研究基于 Chrome 的聊天/IM 平台的自动化测试。
一种情况是获取所有联系人信息。联系人被放置在组中,并且可以通过单击组名称来查看或隐藏。
我试图发布图片但被拒绝说我没有足够的声誉点:(
HTML 源代码如下所示:
<div id="connectionListItems">
<ul class="connections" style="height: 2783px;">
<li class="group collapsed" data-item-id="SUGAR" data-name="SUGAR" style="top: 0px;"> ... /li>
<li class="group collapsed" data-item-id="Desk Connections" data-name="Desk Connections" style="top: 23px;"> ... /li>
<li class="group expanded" data-item-id="Default" data-name="Default" style="top: 46px;">
<span class="name"> Default <span class="count">(0/118)</span> </span> ... /li>
<li class="connection" data-item-id="Default~klxkqbs_tu-yahoo" style="top: 69px;">
<span class="name">(ABN) James</span> </li>
<li class="connection" data-item-id="Default~klxkqbs_tq-yahoo" style="top: 92px;">
<span class="name">(ABN) Justin</span> </li>
<li class="connection" data-item-id="Default~klxkqbs_wm-yahoo" style="top: 115px;">
<span class="name">(ABN) Matt</span> </li>
.......
</ul>
</div>
我的 Watir 脚本如下所示:
def getContactCount(browser, outputfile)
iframe_chat = browser.iframe(:src => "/tribe/connectionlist/index.html#appId/3")
ul_conns = iframe_chat.div(:id => "connectionList").div(:id => "connectionListItems").ul(:class => "connections")
numGroups = ul_conns.lis(:class => /group/).length
outputfile.puts "- Contact count -- total groups: " + numGroups.to_s
grpName = Array.new
ul_conns.lis(:class => /group/).each { |li| grpName.push li.data_name }
for igrp in 1..numGroups
list_grp = ul_conns.li(:data_name => grpName[igrp-1])
outputfile.puts " Group " + list_grp.text
list_grp.click
outputfile.puts " Number of contacts found: " + ul_conns.lis(:class => "connection").length.to_s
ul_conns.lis(:class => "connection").each { |li| outputfile.puts " " + li.span(:class => "name").text }
list_grp.click
end
end
这是输出:
- Contact count -- total groups: 3
Group SUGAR (0/11)
Number of contacts found: 11
(GFI) Joachim
(ICAP) Kissel
(JB Drax) James
(JB Drax) Simon
(JPM) Jason
(JPM) Jeb
(JSG) Steven
(Macq) NY SB Desk
(NE) Chris
(RJO) Babe
(RJO) Croce
Group Desk Connections (1/88)
Number of contacts found: 55
ICM_am
(ABN) Alex
(ABN) James
(ABN) Justin
(ADM) Marie
(Alliance) Victor
(Arfinco) Bruno
(Arfinco) Nico
.......
Group Default (0/118)
Number of contacts found: 54
(ABN) James
(ABN) Justin
(ABN) Matt
......
问题是,对于组“Desk Connections”和“Default”,脚本仅检索到部分联系人(分别为 88 个中的 55 个、118 个中的 54 个)。
实际上,当我在 Chrome 浏览器中查看 HTML 源代码时,也只列出了其中的一部分。但是当我向下滚动框架时,会显示更多内容(但顶部的那些变得不可见)。
有人可以看看和帮助吗?如何获得所有“li”(class="connection")?
让我知道是否需要更多信息。
非常感谢。