2013-10-04 72 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()操作。

相關問題