栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将现有的Webdriver对象传递到用于Robot Framework的自定义Python库

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将现有的Webdriver对象传递到用于Robot Framework的自定义Python库

没有什么内置到库,让你做你想做的 本身
。但是,您可以创建自己的可以访问硒功能的库。有两种方法可以做到这一点,这两种方法都需要在python中创建自己的库。这些方法是要子类化Selenium2Library或获得对Selenium2Library实例的引用。

创建子类Selenium2Library的自定义库

访问Selenium2Library内部的一种方法是编写一个从Selenium2Library继承的库类。执行此操作后,您就可以访问原始库中的所有内容。然后,您可以返回对WebDriver对象的引用,也可以只用python编写自己的关键字。

例如,这是一个自定义的硒库,它具有一个新关键字,它将返回当前的WebDriver实例。它通过调用private(对原始Selenium2Library)方法来实现

_current_browser
。由于这是一个私有方法,因此无法保证它会经受住时间的考验,但是在我撰写本文时,它确实存在。

创建一个自定义的硒库

首先,创建一个名为CustomSeleniumLibrary.py的新python文件。将其放置在机器人可以找到的位置-
最简单的方法是将其放置在与将要使用它的测试套件相同的文件夹中。将以下内容放入该文件:

from Selenium2Library import Selenium2Library# create new class that inherits from Selenium2Libraryclass CustomSeleniumLibrary(Selenium2Library):    # create a new keyword called "get webdriver instance"    def get_webdriver_instance(self):        return self._current_browser()

创建一个使用该库的测试用例

接下来,编写一个使用此示例而不是Selenium2Library的测试用例。例如:

*** Settings ***| Library | CustomSeleniumLibrary.py| Suite Teardown | close all browsers*** Test Cases ***| Example using custom selenium library| | Open browser | http://www.example.com | browser=chrome| | ${webdriver}= | Get webdriver instance| | log | webdriver: ${webdriver}

运行测试

像运行其他任何测试一样运行测试。完成后,您应该在日志中看到以下内容:

16:00:46.887 INFO webdriver: <selenium.webdriver.chrome.webdriver.WebDriver object at 0x10b849410>

在测试用例中使用对象

隐秘的

...<selenium....WebDriver object...>
消息证明该变量实际上持有对python
WebDriver对象的引用。然后,使用机械手的扩展变量语法,您可以根据需要在该对象上调用方法和访问属性。我不建议这样做,但是我认为机器人支持它真的很有趣:

| | log | The page title is ${webdriver.title}

创建一个引用Selenium2Library的自定义库

实现此目的的第二种方法是使用机器人获取库实例的方法,此时,您可以根据需要访问对象。机器人用户指南中对此进行了说明。请参见《机器人框架用户指南》中的从机器人框架获取活动库实例。

例如,上例中的get_library_instance关键字如下所示:

from robot.libraries.BuiltIn import BuiltIndef get_webdriver_instance():    se2lib = BuiltIn().get_library_instance('Selenium2Library')    return se2lib._current_browser()

请注意,在这种情况下,您必须同时包含Selenium2Library 自定义库:

*** Settings ***| Library | Selenium2Library| Library | CustomSeleniumKeywords.py| Suite Teardown | close all browsers*** Test Cases ***| Example using custom selenium keyword| | Open browser | http://www.example.com | browser=chrome| | ${webdriver}= | Get webdriver instance| | log | webdriver: ${webdriver}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617505.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号