javascript - 如何使用用于测试自动化的 JavaScript 查找具有相同属性的两个 Web 对象

标签 javascript html selenium testcomplete

我有这段HT​​ML代码

HTML

我需要使用 JavaScript 找到这 2 个对象,以便我可以单击 () 它并编写一些文本(测试自动化)。

问题是 id 是动态生成的,因此无法使用,因为每次加载页面时它都会不断变化。现在因为不能使用 id,这 2 个对象在没有任何唯一标识符的情况下看起来是一样的。

如果我用这个

document.querySelector("input.value-restored[type='text']");

然后它将只找到第一个。

知道如何击中两个物体吗?

谢谢。

最佳答案

您可以使用[contains()] 为这些元素构造一个xpath。如我所见,父 span 有一个稳定的类名,您可以使用它。

JAVA

WebElement firstElement = driver.findelements(By.xpath("//span[contains(@class,'form-row-ui-calender-row')]/input[@type='text']")).get(0);
WebElement secondElement = driver.findelements(By.xpath("//span[contains(@class,'form-row-ui-calender-row')]/input[@type='text']")).get(1);

或者在您的 xpath 中使用索引。

WebElement firstElement = driver.findelements(By.xpath("//span[contains(@class,'form-row-ui-calender-row')]/input[@type='text'][1]"));
WebElement secondElement = driver.findelements(By.xpath("//span[contains(@class,'form-row-ui-calender-row')]/input[@type='text'][2]"));

希望这对您有所帮助。

关于javascript - 如何使用用于测试自动化的 JavaScript 查找具有相同属性的两个 Web 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42430168/

相关文章:

javascript - Google Apps 脚本 - 复制脚注内容时保留链接

html - 如何将日期选择器添加到引导页面?

php - 在 HTML 文本输入表单值属性中使用 PHP 二维数组变量

python - 如何在一段时间没有事件后禁用 Selenium Chrome 驱动程序的自动关闭操作?

Ruby/Selenium 问题识别列表中显示的项目

javascript - 在 React Native 中使用变量作为图像的路径

javascript - 在 Google Adwords 中跟踪多个不同的网址点击作为转化

javascript - 从表中的每个输入中获取数字

javascript - 开源/免费 HTML5/CSS3/JavaScript IDE?

java - 如何在 maven-surefire-plugin 中设置并行测试