chenwubia0 发表于 2012-5-9 15:44:41

当下拉框的值出现翻页情况,该如何使用循环语句判断翻页。

Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").SetTOProperty "innertext", DataTable("项目名称", dtGlobalSheet)
Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").Click

这两段代码是获取动态的datatable中的值,然后点击选中。

可是现在遇到了这个情况,当下拉框的值是“cw项目10”的时候,则会启动翻页功能,这时候就获取不到值了
除非中间加一段翻页的代码点击翻页按钮才会获取得到cw项目10

Browser("业务管理系统").Page("业务管理系统").Frame("Frame_2").WebButton("项目名称翻页").Click
所以这里有什么办法能判断下拉框中的值到了10条以上了就点击翻页按钮,也可以判断下页数来决定是否翻页


这个判断循环语句该怎么写呢?求高手帮忙

lifreshman0626 发表于 2012-5-9 16:29:40

你获取datatable中值的时候不就有个循环吗,然后 当循环的变量%10 = 0 的时候就翻页,就行吧

chenwubia0 发表于 2012-5-10 15:13:56

回复 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:27

本帖最后由 lifreshman0626 于 2012-5-10 16:47 编辑

Dim rowcount = datatable.GetSheet("dtGlobalSheet").GetRowCount
For i = 1 to rowcount
Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").SetTOProperty "innertext", DataTable("项目名称", dtGlobalSheet)
Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").Click
If i mod 10 = 0 Then '这是在第11个翻页
Browser("业务管理系统").Page("业务管理系统").Frame("Frame_2").WebButton("项目名称翻页").Click
End If
datatable.SetNextRow
Next具体在10还是11翻页,你修改一下If i mod 10 = 0 Then这块i的值就行

chenwubia0 发表于 2012-5-10 17:01:03

回复 4# lifreshman0626


    哥们这一句好像通过不了。Dim rowcount = datatable.GetSheet("dtGlobalSheet").GetRowCount

chenwubia0 发表于 2012-5-10 17:02:56

回复 4# lifreshman0626


    我知道了。要这样写。
Dim rowcount
rowcount = datatable.GetSheet("dtGlobalSheet").GetRowCount
不能直接赋值

chenwubia0 发表于 2012-5-10 17:09:41

回复 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:22

本帖最后由 6道9 于 2012-5-10 17:27 编辑

回复 7# chenwubia0


    他现在这个翻页代码肯定不满足你得要求,因为它只会在十的整数倍条的时候翻页,但是你可以把条件改为>=零啊!那么0,1,2,3,...,9都会翻了撒。
这样处理那么就存在一个问题:会不会它就会一直翻呢?!所以你还得先检查选项数大于十条。应该就可以完全满足你的需求了!

lifreshman0626 发表于 2012-5-10 20:30:32

本帖最后由 lifreshman0626 于 2012-5-10 20:33 编辑

Dim rowcount,clickcount
rowcount = datatable.GetSheet("dtGlobalSheet").GetRowCount

For i = 1 to rowcount
clickcount = int((i-1)/10)    ' 这是在i为11-20的时候,翻页一次,i为21翻页两次
For j = 1 to clickcount
    Browser("业务管理系统").Page("业务管理系统").Frame("Frame_2").WebButton("项目名称翻页").Click
next
Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").SetTOProperty "innertext", DataTable("项目名称", dtGlobalSheet)
Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").Click
datatable.SetNextRow
Next哥们加个好友吧,237184453 李新生

chenwubia0 发表于 2012-5-11 10:59:30

回复 9# lifreshman0626 Dim rownum,clickcount
rownum = DataTable.GetSheet("Global").GetCurrentRow

clickcount = int((rownum-1)/10)    ' 这是在rownum为11-20的时候,翻页一次,rownum为21翻页两次
For j = 1 to clickcount
    Browser("业务管理系统").Page("业务管理系统").Frame("Frame_2").WebButton("项目名称翻页").Click
next
Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").SetTOProperty "innertext", DataTable("项目名称", dtGlobalSheet)
Browser("业务管理系统").Page("业务管理系统").Frame("Frame").WebElement("cw项目01").Click感谢哥们。感谢CCTV,感谢AV。问题终于解决了。
页: [1]
查看完整版本: 当下拉框的值出现翻页情况,该如何使用循环语句判断翻页。