这个简单的Java / Selenium WebDriver代码如何工作

时间:2013-10-04 19:22:40

标签: java selenium automation webdriver selenium-webdriver

我是硒新手,昨天通过观看几个视频开始学习它。我怀疑这段代码是如何工作的。请解释一下。

// 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");

这两段代码都能正确完成所需的工作,但它们是如何工作的?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

WebElements表示为HTML元素。

webdriver.findElement方法将获取满足条件的HTML元素。 下面的场景Web驱动程序将搜索具有类值email的HTML元素,它将返回相应的元素,selenium可以对其进行进一步操作,如click,sendkeys等...

webDriver.findElement(By.xpath( “// * [@类= '电子邮件']”) 要么 webDriver.findElement(By.className( “电子邮件”)

答案 2 :(得分:0)

这些都是完全相同的。你可以使用任何方法。
一个额外的优点第二种方法是,你可以重复使用相同的'ex'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()操作。