帮助Watir使用表和逻辑运算符编写脚本

时间:2011-06-30 00:52:33

标签: ftp watir

我是Watir测试的新手,需要您就我遇到的问题提出建议。我不能给你看页面,因为它不是一个公共网站,但我会给你一个类似的表,可以帮助你描绘问题。

样本表:

Begin Month     Protocol    Result
09/2003         HTTP        SUCCESS
09/2003         FTP         SUCCESS
01/2004         HTTP        SUCCESS
08/2011         FTP         FAIL

每个协议单元格都是带有

的可点击动态链接
  

href=javascript:submitForm('/<servlet path>/viewinfo?viewId=<dynamic id>').

我将成为生成08/2011,FTP链接的那个,我想点击它。

问题:

  • 没有ID或名称的HTML标签,因此我无法使用这些标签来指示Watir点击什么。
  • 我不能使用FTP的直接文本,因为它之前已有一个。 Watir会点击我认为的第一个。
  • 我不能总是使用href链接,因为动态ID可能会一直变为不同的数字。

我认为我需要一个逻辑运算符条件检查,如下所示。有什么建议?谢谢你的帮助。

if cell(Begin Month == 08/2011) && cell(Protocol == FTP)<br>
  click that FTP dynamic link<br>
end

2 个答案:

答案 0 :(得分:1)

试试这个

browser.link(:after?, browser.cell(:text => "08/2011")).click

或者

browser.link(:text => "FTP", :after? => browser.cell(:text, "08/2011")).click    

来源:Ways Available To Identify HTML ElementMultiple Attributes

答案 1 :(得分:0)

所有文本共享都在表的一行内,因此可用于根据以下内容匹配行:text

您可以通过正则表达式识别所需的行,然后根据该文本的文本识别该行中的单元格。

browser.row(:text, /08\/2011FTP/).cell(:text, 'FTP').click

可能在列之间可能存在空格(尝试查看表行的.text),如果没有看到HTML,很难知道。

如果你需要根据你读入的数据创建正则表达式,那么请阅读ruby的'regex'函数,该函数允许你从字符串创建正则表达式