【发布时间】:2013-06-05 23:21:10
【问题描述】:
我进行了几次搜索,但找不到合适的答案。基本上我有一个可以有不同长度的无序列表。我想遍历列表,做一些其他的事情,然后回来选择列表中的下一个项目。当我定义循环应该迭代的次数时,我可以做到这一点,因为我知道列表中的项目数量。
但是我不想为每个测试定义这个,我想获取列表中的项目数,然后将其弹出到一个变量中,我可以使用该变量退出循环并执行我想要的下一件事。
HTML 是这样的:
<ul id="PageContent_cat">
<li class="sel">
<a target="_self" href="/searchlocation.aspx?c=S1">S1</a>
</li>
<li>
<a target="_self" href="/searchlocation.aspx?c=S2">S2</a>
</li>
<li>
<a target="_self" href="/searchlocation.aspx?c=S3">S3</a>
</li>
<li>
<a target="_self" href="/searchlocation.aspx?c=S4">S4</a>
</li>
<li>
<a target="_self" href="/searchlocation.aspx?c=S5">S5</a>
</li>
<li>
<a target="_self" href="/searchlocation.aspx?c=S6">S6</a>
</li>
<li>
<a target="_self" href="/searchlocation.aspx?c=S7">S7</a>
</li>
</ul>
所以我可以看到列表中有 7 个项目。显然,在 watir 中,我可以使用以下内容:
arr= ie.select_list(:name,'lr').getAllContents.to_a
但不使用 webdriver。
我以为我可以使用“lis”,但我只得到一个十六进制结果:
$bob = browser.ul(:id => "PageContent_cat").lis 放 $bob
谢谢,
保罗
【问题讨论】:
-
所以,原来我只是使用: $bob = browser.ul(:id => "PageContent_cat").lis.length puts $bob 返回 7。
-
那是蛮力和丑陋的......见下面亚当的回答
标签: watir watir-webdriver