2016-02-10 169 views
0

而定義用戶的關鍵字,自定義庫的網絡自動化,這庫應該導入?selenium2library或selenium.How進口的webdriver使用的webdriver到做網頁時自動從實例化自定義庫中的對象的webdriver點擊一些elements.Kindly用一個例子解釋如何使用機器人框架

回答

0

在大多數情況下,你不需要實例化對象的webdriver。通常你使用Selenium2Library已經有的webdriver實例。您如何訪問該實例取決於您計劃如何與Selenium2Library進行交互。有關選項,請參閱用戶指南中的「Extending existing test libraries」部分。每個選項都有優點和缺點。

如果你繼承Selenium2Library,那麼你會通過self._current_browser()訪問驅動程序。

如果您打算直接使用Selenium2Library而不是繼承,您將聲明Selenium2Library和您的自定義庫。訪問該驅動程序最方便的方式是通過私人財產,如下所示。

from robot.libraries.BuiltIn import BuiltIn 

class Selenium2LibraryExt(object): 

    @property 
    def _s2l(self): 
     return BuiltIn().get_library_instance('Selenium2Library') 

    @property 
    def _driver(self): 
     return self._s2l._current_browser() 

    def perform_search(self, criteria): 
     textbox = self._driver.find_element_by_name('q') 
     textbox.send_keys(criteria) 
     textbox.submit() 

測試套件文件:

*** Settings *** 
Test Teardown  Close All Browsers 
Library   Selenium2Library 
Library   c:/ws/Selenium2LibraryExt.py 

*** Test Cases *** 
Do a search 
    Open Browser http://www.google.com/ gc 
    Perform Search happiness 
0

我發現繼承Selenium2Library通常是不夠的,這樣

from Selenium2Library import Selenium2Library 

class MySelenium2Library(Selenium2Library): 
    def my_keyword(self): 
     my_element = self.get_my_element() 
     self.click_element(my_element) 

機器人導入此新庫

*** Settings *** 
Library MySelenium2Library.py 

*** Test Cases *** 
Test 1 
    My Keyword 

我沒有必要的webdriver點擊元素。我會盡全力點擊Selenium2Library點擊方法,如click_element。

+0

你在哪裏提到要單擊該元素的XPath是get_my_element()在selenium2library定義的函數? –

+0

在我的例子元素值由函數返回get_my_element。元素值與Selenium2Library使用的格式相同。如果您有ID爲「登陸」的元素,你可以應該能夠只使用self.click_element(「登錄」)。 – Pekka

+0

如何在自定義庫中定義web元素.element =(by.xpath,「// a [text()='login']」)。這種定義將在自定義庫中被識別 –

相關問題