webelement element = driver.findelementby(By.id(“”))中的driver.findelementby(By.id(“”))是什么

时间:2017-02-09 07:04:05

标签: java c# selenium selenium-webdriver

我是编程的新手,但我正在研究Selenium自动化。 我在WebDriver driver=new ChromeDriver()中看到,WebDriverChromeDriver都是类,ChromeDriver正在实现WebDriver,因此WebDriver用作参考变量放置ChromeDriver类的对象。

但在WebElement element=driver.findelementby(By.id("something"))中,WebElement是一个类,但在右侧,它似乎是一种方法,我假设,FindElement是{{1}中的方法} .class。引用变量等同于方法而不是类的对象,如上面的段中所示。这怎么可能?什么是这个被称为。上面的段落中是否有与此概念相关的链接?

4 个答案:

答案 0 :(得分:3)

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

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

如果您看到WebDriver driver = new ChromeDriver();,那么从技术上讲,这是变量声明声明 。您的分析大致正确,但重要的是要知道:

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

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

WebElement element=driver.findelementby(By.id("something"));并没有什么不同,它只是右侧的一种不同类型的表达式:它是一个方法调用表达式。

  • 假设您如上所述声明driverfindelementby WebDriver 类中的一种方法,而不是ChromeDriver(尽管它会存在在ChromeDriver中,作为WebDriver)的子类。

答案 1 :(得分:0)

在OOP方法中,通常会返回各种类型的值。有时方法什么都不返回。在Java中,它注释为imgView

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

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

https://docs.oracle.com/javase/tutorial/java/concepts/ - 这与java有关。 https://www3.ntu.edu.sg/home/ehchua/programming/java/J3a_OOPBasics.html - 这里有更多示例

答案 2 :(得分:0)

在" WebElement element=driver.findElement(By.id("something"))"

" By.id("something") ":定位器:定位器告诉Selenium需要操作哪些GUI元素(比如文本框,按钮,复选框等)。因此,它会找到" something"元素使用" id"。

" findElement(By.id("something"))":方法:在WebDriver中定位元素是通过使用" findElement(By.locator())"方法

" WebElement element ":对象声明:而不是使用long" driver.findElement(By.locator())"语法每次访问特定元素时,我们都可以为它实例化一个WebElement对象。 WebElement类包含在" org.openqa.selenium。*"封装

FYI ,WebDriver是一个Web自动化框架,允许您针对不同的浏览器执行测试,而不仅仅是Chrome或Firefox或其他浏览器。 WebDriver还允许您在创建测试脚本时使用编程语言

答案 3 :(得分:0)

你的问题是对的,但你的假设是错误的。 WebDriverWebElement不属于班级。它们是由ChromeDriver类实现的接口。

findElement是在WebDriver类中声明的方法,它返回WebElement接口。

WebDriverWebElement接口由RemoteWebDriver实施,RemoteWebDriver进一步扩展ChromeDriver

希望有所帮助!