我有这段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/