使用机器人框架进行 Web 自动化时如何从自定义库中实例化 webdriver 对象
how to instantiate the webdriver object from the custom library when doing web automation using robot framework
在为 Web 自动化自定义库中定义用户关键字时,应导入哪个库?selenium2library 或从 selenium.How 导入 webdriver 以使用 webdriver 单击某些 elements.Kindly 举例说明
我发现一般继承Selenium2Library就够了,像这样
from Selenium2Library import Selenium2Library
class MySelenium2Library(Selenium2Library):
def my_keyword(self):
my_element = self.get_my_element()
self.click_element(my_element)
在 Robot 中导入这个新库
*** Settings ***
Library MySelenium2Library.py
*** Test Cases ***
Test 1
My Keyword
我不需要 webdriver 来点击元素。我使用 Selenium2Library 点击方法进行所有点击,例如 click_element.
在大多数情况下,您不需要实例化 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
在为 Web 自动化自定义库中定义用户关键字时,应导入哪个库?selenium2library 或从 selenium.How 导入 webdriver 以使用 webdriver 单击某些 elements.Kindly 举例说明
我发现一般继承Selenium2Library就够了,像这样
from Selenium2Library import Selenium2Library
class MySelenium2Library(Selenium2Library):
def my_keyword(self):
my_element = self.get_my_element()
self.click_element(my_element)
在 Robot 中导入这个新库
*** Settings ***
Library MySelenium2Library.py
*** Test Cases ***
Test 1
My Keyword
我不需要 webdriver 来点击元素。我使用 Selenium2Library 点击方法进行所有点击,例如 click_element.
在大多数情况下,您不需要实例化 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