1

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

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

这是代码:

textarea id="3765_id_50" name="entry_field[2679]" style="width:350px;" 行="3" 换行="物理">

textarea id="3772_id_100" name="entry_field[2686]" style="width:350px;" 行="3" 换行="物理">

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

到目前为止,我只有,

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

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

4

2 回答 2

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 的情况下辛勤工作的测试。

于 2012-08-24T20:33:44.550 回答
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
于 2014-07-11T11:54:28.080 回答