我正在尝试在所有当前文本字段中输入相同的句子。
例如,我正在尝试输入“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
但它只在它看到的第一个文本框中输入它。
答案 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