51Testing软件测试论坛

标题: 当下拉框的值出现翻页情况,该如何使用循环语句判断翻页。 [打印本页]

作者: chenwubia0    时间: 2012-5-9 15:44
标题: 当下拉框的值出现翻页情况,该如何使用循环语句判断翻页。
Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").SetTOProperty "innertext", DataTable("项目名称", dtGlobalSheet)
Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").Click
[attach]78916[/attach]
这两段代码是获取动态的datatable中的值,然后点击选中。

可是现在遇到了这个情况,当下拉框的值是“cw项目10”的时候,则会启动翻页功能,这时候就获取不到值了
除非中间加一段翻页的代码点击翻页按钮才会获取得到cw项目10
[attach]78917[/attach]
Browser("业务管理系统").Page("业务管理系统").Frame("Frame_2").WebButton("项目名称翻页").Click
所以这里有什么办法能判断下拉框中的值到了10条以上了就点击翻页按钮,也可以判断下页数来决定是否翻页
[attach]78918[/attach]

这个判断循环语句该怎么写呢?求高手帮忙
作者: lifreshman0626    时间: 2012-5-9 16:29
你获取datatable中值的时候不就有个循环吗,然后 当循环的  变量%10 = 0 的时候就翻页,就行吧
作者: chenwubia0    时间: 2012-5-10 15:13
回复 2# lifreshman0626


Dim xmname
xmname = DataTable("项目名称", dtGlobalSheet)
If xmname ="cw项目11" Then
        Browser("业务管理系统").Page("业务管理系统").Frame("Frame_2").WebButton("项目名称翻页").Click
End If
Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").Click

我写了一个判断语句。当项目名称的值等于cw11的时候启动项目名称翻页。但是不会写循环语句。
就是当项目名称等于cw项目21、31、41的时候会相应的启动项目名称翻页,而且翻页也会随着31翻页2次,41翻页3次。这样变化。
有知道写的朋友麻烦帮忙下。谢谢了
作者: lifreshman0626    时间: 2012-5-10 16:42
本帖最后由 lifreshman0626 于 2012-5-10 16:47 编辑
  1. Dim rowcount = datatable.GetSheet("dtGlobalSheet").GetRowCount
  2. For i = 1 to rowcount
  3. Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").SetTOProperty "innertext", DataTable("项目名称", dtGlobalSheet)
  4. Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").Click
  5. If i mod 10 = 0 Then '这是在第11个翻页
  6. Browser("业务管理系统").Page("业务管理系统").Frame("Frame_2").WebButton("项目名称翻页").Click
  7. End If
  8. datatable.SetNextRow
  9. Next
复制代码
具体在10还是11翻页,你修改一下If i mod 10 = 0 Then  这块i的值就行
作者: chenwubia0    时间: 2012-5-10 17:01
回复 4# lifreshman0626


    哥们这一句好像通过不了。Dim rowcount = datatable.GetSheet("dtGlobalSheet").GetRowCount
作者: chenwubia0    时间: 2012-5-10 17:02
回复 4# lifreshman0626


    我知道了。要这样写。
Dim rowcount
rowcount = datatable.GetSheet("dtGlobalSheet").GetRowCount
不能直接赋值
作者: chenwubia0    时间: 2012-5-10 17:09
回复 4# lifreshman0626


    运行到
Dim rowcount
rowcount = datatable.GetSheet("dtGlobalSheet").GetRowCount
的时候报错。
对了,我忘了一个地方,当项目名称等于cw项目11的时候会翻页,等于cw项目12、13、14、15、16、17、18、19、20都要翻一次页。
等于cw项目21的时候则要翻两次页。兄台你的代码包括了这个需求吗?
作者: 6道9    时间: 2012-5-10 17:23
本帖最后由 6道9 于 2012-5-10 17:27 编辑

回复 7# chenwubia0


    他现在这个翻页代码肯定不满足你得要求,因为它只会在十的整数倍条的时候翻页,但是你可以把条件改为>=零啊!那么0,1,2,3,...,9都会翻了撒。
这样处理那么就存在一个问题:会不会它就会一直翻呢?!所以你还得先检查选项数大于十条。应该就可以完全满足你的需求了!
作者: lifreshman0626    时间: 2012-5-10 20:30
本帖最后由 lifreshman0626 于 2012-5-10 20:33 编辑
  1. Dim rowcount,clickcount
  2. rowcount = datatable.GetSheet("dtGlobalSheet").GetRowCount

  3. For i = 1 to rowcount
  4. clickcount = int((i-1)/10)    ' 这是在i为11-20的时候,翻页一次,i为21翻页两次
  5. For j = 1 to clickcount
  6.     Browser("业务管理系统").Page("业务管理系统").Frame("Frame_2").WebButton("项目名称翻页").Click
  7. next
  8. Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").SetTOProperty "innertext", DataTable("项目名称", dtGlobalSheet)
  9. Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").Click
  10. datatable.SetNextRow
  11. Next
复制代码
哥们加个好友吧,237184453 李新生
作者: chenwubia0    时间: 2012-5-11 10:59
回复 9# lifreshman0626
  1. Dim rownum,clickcount
  2. rownum = DataTable.GetSheet("Global").GetCurrentRow

  3. clickcount = int((rownum-1)/10)    ' 这是在rownum为11-20的时候,翻页一次,rownum为21翻页两次
  4. For j = 1 to clickcount
  5.     Browser("业务管理系统").Page("业务管理系统").Frame("Frame_2").WebButton("项目名称翻页").Click
  6. next
  7. Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").SetTOProperty "innertext", DataTable("项目名称", dtGlobalSheet)
  8. Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").Click
复制代码
感谢哥们。感谢CCTV,感谢AV。问题终于解决了。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2