我使用WebElement.findElement(By.cssSelector('')).click();在页面上查找元素,但返回了"Unable to locate element",但是当我使用WebDriver.findElement(By.cssSelector('')).click();时,它能够找到该元素并单击它。

我无法理解两个接口的findElement()之间的区别。
请帮助。

最佳答案

WebElement.findElement()将使用该元素作为搜索选择器的范围。这意味着它通常用于搜索子元素。

WebDriver.findElement()将使用驱动程序(即整个页面)搜索给定的选择器。

因此,具体来说,对于您的实例(我们将需要更多信息来更准确地弄清楚它),很可能是您的选择器与给定的WebElement的子项不匹配,但是当driver试图在整个页面(不包括iframe)中进行搜索,就可以找到它。

10-07 17:09