0

我是 selenium 的新手,昨天通过观看一些视频开始学习它。我对这段代码的工作方式有疑问。请解释。

// I am creating a Object reference for the FirefoxDriver class
FirefoxDriver f=new FirefoxDriver();

//findElementByClassName method is available in FirefoxDriver class. i Can understand this.
f.findElementByClassName("Email").sendKeys("abc");

如何sendkeys("abc")工作?它也是 FirefoxDriver 类的方法吗?但是我知道它在测试字段中输入了“abc”。我只是想知道如何在这里使用它。

我以不同的方式尝试了同一段代码。在这里,WebElement 类如何与 firefoxDriver 类一起使用?

FirefoxDriver f=new FirefoxDriver();
WebElement ex= f.findElementByClassName("Email");
ex.sendKeys("abc");

这两段代码都能正常工作,但它们是如何工作的呢?

4

3 回答 3

1

是的,这两段代码都有效。

基本上,当您执行任何findElement功能时,它都会返回一个 WebElement。WebElement 是一个指向附加到浏览器的 HTML 元素的对象。然后,当您 时sendKeys(),驱动程序将转到该元素并键入。

于 2013-10-04T19:36:41.850 回答
0

WebElements 表示为 HTML 元素。

webdriver.findElement 方法将获取满足条件的 HTML 元素。以下场景 Web 驱动程序将搜索具有类值 email 的 HTML 元素,并将返回相应的元素,并且 selenium 可以对其进行进一步的操作,例如单击、发送键等...

webDriver.findElement(By.xpath("//*[@class='Email']") 或 webDriver.findElement(By.className("Email")

于 2013-10-04T19:48:49.503 回答
0

这些都是完全相同的。您可以使用任何方法。
第二种方法的另一个优点是,您可以重用相同的“前”WebElement 以进一步执行代码中的其他功能。这为您提供了可重用性

第一段代码:

FirefoxDriver f=new FirefoxDriver();
f.findElementByClassName("Email").sendKeys("abc");

-在这里,我们有两种方法级联来执行所需的功能。
- 创建“FirefoxDriver”实例“f”,然后使用此实例调用其方法“findElementByClassName”,该方法返回一个WebElement,然后“sendKeys”fn 将值“abc”输入到该Web 元素。

第二段代码:

FirefoxDriver f=new FirefoxDriver();
WebElement ex= f.findElementByClassName("Email");
ex.sendKeys("abc");

-这里有两个实例,一个'f'代表 FirefoxDriver,'ex' 代表'WebElement'。
-首先,创建 FirefoxDriver 的新实例并使用它找到 WebElement 并将其存储在“ex”中,并使用这个“ex”我们正在执行 sendKeys() 操作。

于 2017-10-08T18:44:57.863 回答