[英]Robot Framework error in counting rows from table
我试图将可以在页面上显示为10、20或50行的表中的表中的所有行数进行计数。 我在数据库中有71条记录,因此在页面上,当我选择每页10行时,有8个表链接。 以下代码可以正常工作,并返回到第6页的行总和,该行表明合计值为60,但是在下一次迭代中,它无法计数第7页的10条记录,并且仅返回1,因此我得到的总数为61,而不是71.在此过程中似乎忽略了页面。
在Hemanthvrm在下面发表评论后,我查看了html,发现此问题是由于页面导航表上的范围问题引起的。 此页面导航表有10个框<Prev>|1|2|3|4|5|...|8|<Next>
xpath的范围从// [@ id =“ study_paginate”] / ul / li [2] / a到// [@ id =“ study_paginate”] / ul / li [8] / a
但是,当单击第5页时,导航表将更改为
<Prev>|1|...|4|5|6|7|8|<Next>
但是相对位置的xpath保持不变,因此以前// // [@ id =“ study_paginate”] / ul / li [6] / a指的是第5页,单击第5页后,// // [@ id =现在,“ study_paginate”] / ul / li [6] / a指向第6页。由于系统已经单击了该xpath(第5页),因此在五次后它单击了// * [@@ id =“ study_paginate”] / ul / li [7] / a,现在参考第7页。 因此第6页完全被省略了。
SAS_Temp_Tests
[Tags] TEMP
Open Browser http://localhost:5000/login/ Chrome
Maximize Browser Window
Wait Until Element Is Visible id=submit
Input Text id=email ${User_Email}
Input Password password ${User_PW}
Click Element id=submit
sleep 2s
Click Element ${User_Menu Link}
Wait Until Element Is Visible ${User_menu_Study_admin_Panel Link}
Click Element ${User_menu_Study_admin_Panel Link}
sleep 3s
Comment Click Element xpath=//*[@id="study_length"]/label/select/option[4]
${rows}= Get Matching Xpath Count //*[@id="study"]/tbody/tr
Log ${rows}
${Row_num}= Evaluate 0
Set Global Variable ${Row_num}
Log ${Row_num}
: FOR ${x} IN RANGE 2 9999999
\ ${page}= Run Keyword And Return Status Element Should Be Visible xpath=//*[@id="study_paginate"]/ul/li[${x}]/a
${y} Evaluate ${x}+1
\ ${No_Page} Run Keyword And Return Status Element Should Not Be Visible xpath=//*[@id="study_paginate"]/ul/li[${y}]/a
\ Exit For Loop If ${No_Page}
\ Click Element xpath=//*[@id="study_paginate"]/ul/li[${x}]/a
\ Wait Until Element Is Visible xpath=//*[@id="study"]
\ sleep 1s
\ ${rows}= Get Matching Xpath Count //*[@id="study"]/tbody/tr
\ ${Row_num} Evaluate ${Row_num}+${rows}
\ Log ${Row_num}
Close All Browsers
通过此更新,有什么建议可以解决这个问题?
一切看起来不错
*您测试过$ {x}中仅传递7吗? 如果是,那么您有1或10吗?
*您是否比较过7和6的表格格式?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.