如何在SeleniumIDE中的ALL显示文本字段中输入数据



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

例如,我正在尝试键入"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

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

因此,考虑到今天和昨天的问题,它表明您现在确实达到了IDE的极限。特别是考虑到你似乎对定位器有着深入的了解,我真的建议你迁移到WebDriver

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

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

[1]对应于硒发现的第一个元素,[2]对应于第二个元素。

当然,IDE中也有这个问题,因为你必须为你的每个盒子手动输入这个命令,所以如果你有10个盒子,那就是10次手动插入,如果失败了,还要进行维护来修复。WebDriver有更好的api来处理这些无法使用IDE访问的情况。我建议,如果你对硒是认真的,你可以研究一下

编辑

顺便说一下,从IDE中迁移出来并没有那么糟糕。因此,IDE有一些有趣的功能,您可以用某种编程语言保存测试。因此,您可以做到这一点,只需做一点额外的工作,就可以在没有IDE的情况下开始运行您辛苦工作的所有测试。

在这种情况下,您应该将"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

最新更新