我正在测试一个网页,其中有一个特定的div每分钟都会发生变化,我想进行测试以确保它实际上是在变化而不是卡住。理想情况下,我想永久地(或至少很长一段时间)运行它。这是Watir可以实现的吗?这项工作有更好的工具吗?
以下是正在发生的事情的一个例子:
<div class="widgets ui-scrollview-view" style="overflow: hidden; left: -11475px; top: 0px; width: 12150px;">
<div id="main1" class="some_class">
<div id="main2" class="some_other_class">
</div>
main2 div是正在显示的那个...每次有更新时,新的div id递增,旧div向上移动(例如main3显示,main2向上移动,main1不再显示在HTML中)。因此,经过一段时间后,它可能会像:
<div class="widgets ui-scrollview-view" style="overflow: hidden; left: -1350px; top: 0px; width: 2025px;">
<div id="main2" class="some_class">
<div id="main3" class="some_other_class">
</div>
我想确保在一段合理的时间后产生新的div。
答案 0 :(得分:1)
如果它是类正在改变的属性。并且您有一些可用于标识对象的其他属性,然后您可以使用.attribute_value
method检查您感兴趣的属性并查看当前设置的属性。
e.g。 (编辑以反映对问题的更改)
browser.goto("PageYouWantToMonitor")
1000.times do |i|
puts "sample Number #{i}"
puts "First div ID is: #{browser.div(:class => 'widgets ui-scrollview-view').div(:index => 0).attribute_value('id')}"
puts "Second div ID is: #{browser.div(:class => 'widgets ui-scrollview-view').div(:index => 1).attribute_value('id')}"
sleep 30
end
简单的例子,虽然对于长时间的测试,写出某种带有时间戳加上值的日志文件可能更有用。 Ruby内置了一些非常有用的日期/时间库,以及文件IO,一些谷歌搜索应该在每个库上找到一些基本的教程。
答案 1 :(得分:0)
您可以根据需要使用Watir运行测试。请注意,我不确定任何浏览器都可以永久运行。 :)
问题是,你怎么知道检查哪个div?有什么保持不变吗?像往常一样,有关div如何改变的2-3个例子会有所帮助。
例如:
<div id="change">one</div>
更改为
<div id="change">two</div>
然后到
<div id="change">three</div>
用
检查div文本我会很简单browser.div(:id => "change").text