Java 为什么findElement(By)的返回类型是WebElement?

Java 为什么findElement(By)的返回类型是WebElement?,java,selenium,selenium-webdriver,webdriver,Java,Selenium,Selenium Webdriver,Webdriver,为什么findElement(By)的返回类型是WebElement? 我知道文档中提到了返回类型是Webelment,但有人能解释一下为什么返回类型是Webelment吗 我对这个主题的研究 因为我们使用findElement搜索元素,webelement类用于表示HTML元素 请让我知道我的想法是否正确,或者是否有任何具体原因你看得对。根据Java文档,方法返回一个Webelment 要回答您的问题为什么返回类型是Webelment,您的反问题是为什么要查找元素? 当然,答案是您需要(以某种

为什么findElement(By)的返回类型是WebElement?

我知道文档中提到了返回类型是Webelment,但有人能解释一下为什么返回类型是Webelment吗

我对这个主题的研究

因为我们使用findElement搜索元素,webelement类用于表示HTML元素


请让我知道我的想法是否正确,或者是否有任何具体原因

你看得对。根据Java文档,方法返回一个Webelment

要回答您的问题为什么返回类型是Webelment,您的反问题是为什么要查找元素?

当然,答案是您需要(以某种方式)与以下元素之一进行交互:

  • 标题
  • 文本字段
  • 密码字段
  • 钮扣
  • 选择元素
您正在搜索Web元素,您可以选择:

  • 断言WebElement条件(
    isDisplayed()
    isEnabled()
  • 与它交互(
    单击()
    发送键()
  • 检索它的任何属性。(
    getAttribute()
    getCssValue()
  • 等待WebElement处于特定状态(
    isSelected()
因此,出于上述任何一个原因,您都需要获得通过findelelement(By)的WebElement的引用,如果您的搜索成功,则返回准确的WebElement。现在,您可以根据可行性调用WebElement上登记的任何组件,如下所示:

  • 清除()
  • 单击()
  • findElement(By)
  • findElements(By)
  • getAttribute(java.lang.String名称)
  • getCssValue(java.lang.String propertyName)
  • getLocation()
  • getSize()
  • getTagName()
  • getText()
  • isDisplayed()
  • isEnabled()
  • isSelected()
  • sendKeys(java.lang.CharSequence…keystend)
  • submit()

如果findElement()的返回类型为布尔值(根据您的注释更新),则调用以下任何
方法()
都是不可能的。

是的,如果您试图查找一个元素,则返回类型将是一个元素,这似乎是合理的。我很感兴趣的是什么引发了这个问题-听起来你会期望它有一个不同的回报类型。。。你会期望它是什么,为什么?@Jon Skeet我的想法是返回类型可能是布尔型的,因为我们正在搜索一个元素,如果找到return true,或者return false,@sainatpawar简单地检测一个元素是否存在,并不像它们给你的那样灵活或强大。您不能
单击
发送键
布尔值
。如果启用、选择或显示,更不用说测试了。