testing - 点击动态生成的几个链接部分

标签 testing selenium dynamic

我是 Selenium 和测试方面的新手。 我正在 try catch 动态部分生成的超链接元素的 ID。 当我在 selenium 中点击时,点击 Action 被记录如下,粗体部分是动态生成的,我的页面上有很多,并且可能因站点而异(我正在测试 cms)。我想捕捉并点击任何一个。 这是我从那以后一直尝试做的事情:

存储属性 |//button@class onclick="setLocation(javascript{baseUrlSelection()}['/checkout/cart/add/uenc/(a-zA-Z0-9)/product/(0-9)]'')"|编号


回声 | ${myid} |


点击并等待 | ${myid[0]}

没用 当在 selenium 中记录点击操作时,我的链接看起来像这样: buton[@onclick="setLocation(' http://localhost/mydomaine/index.php/checkout/cart/add/uenc/ aHR0cDovL2xvY2FsaG9zdC9NYWdlbnRvSGls

YWlyZURlbW9WMi9tYWdlbnRvZGVtb0hpbGFpcmVWMi9pbmRleC5waHAvY2F0ZWdvcmllMS5odG1sP19fX1NJRD1V/product/1/')"> 请帮忙。

最佳答案

您使用的是 Selenium IDE 吗?使用其他开发环境做一些事情可能会容易得多,但是如果你真的想做循环: Get the looping user-extension from this page 并运行这样的脚本。

store | 0 | myCurrent
storeEval | var pattern=new RegExp("\\w*http://localhost/mydomaine/index.php/checkout/cart/add\\w*");var i=0;var total=0;while(i<window.document.getElementsByTagName('input').length){if (window.document.getElementsByTagName('input')[i].id.match(pattern)){window.document.getElementsByTagName('input')[i].id = 'testID_' + total;total=total+1;}i=i+1;}total; | myTotal
while | storedVars.myCurrent < storedVars.myTotal
storeAttribute | //input[contains(@id,'testID_${myCurrent}')]@class | myid
echo | ${myid}
clickAndWait | //input[contains(@id,'testID_${myCurrent}')]
store | javascript{storedVars.myCurrent++}
endWhile

点击这些按钮有什么作用?它会回发页面或类似的东西吗?如果是这样,您需要移动 storeEval | var 模式.... 在 while 循环内。 javascript 所做的是将页面上与 RegEx 模式匹配的所有输入(您可能需要更改以匹配您的按钮 ID)重命名为顺序 ID,以便您可以轻松地循环访问它们。如果您可以利用不同的模式,请随意使用。

Javascript 改编自 here

关于testing - 点击动态生成的几个链接部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/769400/

相关文章:

python - 使用 selenium python 截取整个页面截图

java - 请为基于动态表单的 Web 应用程序推荐一个好的框架

android - 统计Appium UIAutomator中的子元素个数

python Selenium 权限错误 : [WinError 5] Access is denied

android - 以编程方式在 Android 中模拟多点触控事件以进行测试

javascript - Protractor JS 是否适用于 native 移动应用程序

javascript - 动态添加 通过单击“添加更多”选择国家和州

c++ - C/C++ 静态库与动态库示例

java - 如何在Spring MVC测试框架中测试配置静态资源

testing - rspec 模拟外部 api