如何在Selenium IDE中的所有当前文本字段中输入数据

时间:2012-08-24 19:46:52

标签: selenium selenium-ide

我正在尝试在所有当前文本字段中输入相同的句子。

例如,我正在尝试输入“dsafafsa”。标识符总是在变化。

以下是代码:

textarea id =“3765_id_50”name =“entry_field [2679]”style =“width:350px;” rows =“3”wrap =“physical”>

textarea id =“3772_id_100”name =“entry_field [2686]”style =“width:350px;” rows =“3”wrap =“physical”>

我删除了<在文本区域前面,因为它没有显示代码。

到目前为止我只有,

type  xpath=(//textarea[contains(@name, 'entry')])   sdafdsfsdafsda

但它只在它看到的第一个文本框中输入它。

2 个答案:

答案 0 :(得分:1)

所以考虑到今天的问题和昨天的问题,它表明你现在真正达到了IDE的极限。特别是考虑到你似乎对定位器有高级知识,我真的建议迁移到WebDriver

以下是答案: 假设你有两个像你提到的元素;那你的代码是

type xpath=(//textarea[contains(@name, 'entry')])[1]  sdafdsfsdafsda
type xpath=(//textarea[contains(@name, 'entry')])[2]  sdafdsfsdafsda

[1]对应于第一个元素selenium找到而[2]对应于第二个元素。

当然在IDE中存在这方面的问题,因为你必须为你拥有的每个盒子手动输入这个命令,所以如果你有10个盒子那么那就是10个手动插入然后维护来修复一些如果它失败的东西。 WebDriver有更好的api来处理您无法使用IDE访问的这些情况。如果你对硒很认真,我会建议你研究它。

修改

顺便说一下,迁出IDE并不是那么糟糕。所以IDE有一些有趣的功能,你可以用某种编程语言实际保存测试。所以你可以做到这一点,通过一些额外的工作,你可以开始运行你在没有IDE的情况下努力工作的所有测试。

答案 1 :(得分:0)

在这种情况下,您应该在浏览器中添加“Selenium IDE:Flow Control”,然后输入以下行:

store 1 FIELD_NUMBER

storeElementPresent xpath=(//textarea[contains(@name, 'entry')])[${FIELD_NUMBER}] FIELD_EXISTS

while ${FIELD_EXISTS}==true

type xpath=(//textarea[contains(@name, 'entry')])[${FIELD_NUMBER}] sdafdsfsdafsda

storeEval storedVars['FIELD_NUMBER']=${FIELD_NUMBER}+1

storeElementPresent xpath=(//textarea[contains(@name, 'entry')])[${FIELD_NUMBER}] 
FIELD_EXISTS

endWhile