2013-10-04 36 views
0

我是新来的硒,并开始通过观看一些视频来了解它。我对这段代码如何工作有疑问。请解释。这个简单的Java/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"); 

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

回答

1

是的,这两个代码段的工作。

基本上,当你做任何findElement函数时,它将返回一个WebElement。 WebElement是指向附加到浏览器的HTML元素的对象。然后当你sendKeys(),司机然后将去那个元素和类型。

+0

谢谢队友..明白了你的观点。我可以理解第二种情况! 但是它如何在第一种情况下工作 f.findElementByClassName(“Email”)。sendKeys(“abc”); –

+0

因为当它运行它时,它仍然会返回一个webelement,然后sendKeys()给它。你只是没有将webelement保存为一个名称。 –

+0

太棒了!以及Eclipse如何理解...... 在输入“f.findElementByClassName(”Email“)”之后,它正确地显示了像getAttribut()这样的所有可能的函数。 –

0

WebElements表示为HTML元素。

webdriver.findElement方法将获取满足条件的HTML元素。 下面的场景网络驱动程序将搜索具有HTML元素类值的电子邮件,它会返回相应的元素硒可以在它上面做进一步的操作,如点击,的SendKeys等等

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

0

这些均是完全same.You可以使用任何方法。
一个第二种方法的附加优势是,您可以重复使用相同的'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和关于 'WebElement' 'EX'。
- 首先,创建FirefoxDriver的新实例,并使用它找到WebElement并将其存储在'ex'中,并使用'ex'我们执行sendKeys()操作。