Java webelement=driver.findelementby(By.id(";)中的driver.findelementby(By.id(";)是什么

Java webelement=driver.findelementby(By.id(";)中的driver.findelementby(By.id(";)是什么,java,c#,selenium,selenium-webdriver,Java,C#,Selenium,Selenium Webdriver,我是编程新手,但正在从事Selenium自动化。 我看到在WebDriver=new ChromeDriver()中,WebDriver和ChromeDriver都是类,ChromeDriver正在实现WebDriver,因此WebDriver被用作引用变量来放置ChromeDriver类的对象 但是在WebElement=driver.findelementby(By.id(“某物”)中,WebElement是一个类,但在右侧,它似乎是一个方法,我假设,FindElement是Chromedr

我是编程新手,但正在从事Selenium自动化。 我看到在
WebDriver=new ChromeDriver()
中,
WebDriver
ChromeDriver
都是类,
ChromeDriver
正在实现
WebDriver
,因此
WebDriver
被用作引用变量来放置
ChromeDriver
类的对象


但是在
WebElement=driver.findelementby(By.id(“某物”)
中,
WebElement
是一个类,但在右侧,它似乎是一个方法,我假设,
FindElement
Chromedriver
类中的一个方法。引用变量等同于一个方法,而不是像上面段落中那样的类的对象。这怎么可能?这个概念叫什么。这里是否有与上述段落中的概念相关的链接?

在OOP中,方法通常返回一些不同类型的值。有时方法不能返回任何内容。在Java中,它被注释为
void

在您的示例中,您通过调用
id
调用类
的静态方法。此方法返回的是
WebDriver
接口中声明的方法
findeElementBy
的参数,该接口由
ChromeDriver
实现。此方法将
WebElement
声明为返回类型

阅读更多关于面向对象编程(OOP)的内容,熟悉这个概念。您可以在此处找到有用的资源,例如:

-这与java有关。
-这里有更多OOP中的示例,方法通常返回一些不同类型的值。有时方法不能返回任何内容。在Java中,它被注释为
void

在您的示例中,您通过调用
id
调用类
的静态方法。此方法返回的是
WebDriver
接口中声明的方法
findeElementBy
的参数,该接口由
ChromeDriver
实现。此方法将
WebElement
声明为返回类型

阅读更多关于面向对象编程(OOP)的内容,熟悉这个概念。您可以在此处找到有用的资源,例如:

-这与java有关。
-这里有更多的赋值表达式示例(如
a=b
),左侧(
a
)是变量,右侧(
b
)是表达式

表达式只是在计算时具有某种类型的值(或
null
)的东西。像
1
这样的文字是表达式,但
1+1+1
也是表达式:可以将其计算为
int
类型的值

如果您看到
WebDriver=new ChromeDriver(),这在技术上是一个变量声明语句。您的分析大致正确,但重要的是要知道:

  • 您正在这里声明一个新变量;为了声明一个新变量,它必须是一个语句(注意
    );您可以简单地在表达式中指定现有变量,不过:

    driver = new ChromeDriver()
    
  • 您必须将整个
    new ChromeDriver()
    作为表达式来阅读:它是一个类实例创建表达式,您创建的实例将是一个
    ChromeDriver
    (不是子类)

WebElement=driver.findelementby(By.id(“某物”)
实际上并没有什么不同,它只是右侧的一种不同类型的表达式:它是一种方法调用表达式

  • 假设您如上所述声明了
    driver
    findelementby
    WebDriver
    类中的一个方法,而不是
    ChromeDriver
    (尽管它也将作为
    WebDriver
    的子类出现在
    ChromeDriver
    中)

在赋值表达式(如
a=b
)中,左侧(
a
)是变量,右侧(
b
)是表达式

表达式只是在计算时具有某种类型的值(或
null
)的东西。像
1
这样的文字是表达式,但
1+1+1
也是表达式:可以将其计算为
int
类型的值

如果您看到
WebDriver=new ChromeDriver(),这在技术上是一个变量声明语句。您的分析大致正确,但重要的是要知道:

  • 您正在这里声明一个新变量;为了声明一个新变量,它必须是一个语句(注意
    );您可以简单地在表达式中指定现有变量,不过:

    driver = new ChromeDriver()
    
  • 您必须将整个
    new ChromeDriver()
    作为表达式来阅读:它是一个类实例创建表达式,您创建的实例将是一个
    ChromeDriver
    (不是子类)

WebElement=driver.findelementby(By.id(“某物”)
实际上并没有什么不同,它只是右侧的一种不同类型的表达式:它是一种方法调用表达式

  • 假设您如上所述声明了
    driver
    findelementby
    WebDriver
    类中的一个方法,而不是
    ChromeDriver
    (尽管它也将作为
    WebDriver
    的子类出现在
    ChromeDriver
    中)
    • 在“
      WebElement=driver.findElement(By.id(“某物”))
      ”中

      By.id(“某物”)
      ”:定位器:定位器告诉Selenium需要在哪些GUI元素(如文本框、按钮、复选框等)上操作。因此,它将使用“
      id
      ”查找“
      something
      ”元素

      findElement(By.id(“某物”))
      ”:方法:使用“findElement(By.locator())”方法在WebDriver中定位元素