【发布时间】:2016-12-24 10:53:51
【问题描述】:
我有超过 1 个 XPath 指向一个 Web 元素,我想确定这两个元素是否等效(即,如果我对两个 Web 元素执行操作 sendKeys() 或 click(),则该操作将在相同的网络元素)目前我正在使用以下方法检查是否相等:
WebElement element1 = driver.findElement(By.xpath(".//*[@id='ap_email']"));
WebElement element2 = driver.findElement(By.xpath(".//*[@type='email']"));
System.out.println(element1.equals(element2));
只要两个 XPath 都指向同一个元素,这将返回 true。
但是,我不确定该方法如何确定相等性?是否存在两个 Web 元素实际上相同的情况(即,对它们执行的任何操作都将在同一个 Web 元素上执行)但方法显示它们不同?还是反过来?
我正在尝试开发一种万无一失的方法来确定两个网络元素是否相等。
我正在使用 Java 和 Selenium。
【问题讨论】:
-
WebElement 是一个接口。您需要确定您拥有的实际对象的类型。然后,您可以在线查找该对象的源代码以查看 equals() 实现