RobotFramework - 在 selenium2library 中无法识别使用自定义库打开的浏览器
RobotFramework - Browser opened with custom library cannot be recognized in selenium2library
我是 Python 和 Robot 框架的初学者。我正在尝试在我的机器人框架测试套件中创建和学习使用自定义库。
我已经使用以下代码创建了一个自定义库:
from selenium import webdriver
import time
class CustomLibrary:
def Open_My_Browser(self):
browser = webdriver.Chrome()
browser.maximize_window()
browser.get("http://demo.guru99.com/V4/")
time.sleep(5)
我导入了这个自定义库并指定了关键字 "Open My Browser"。此关键字执行我的自定义库中的代码,但接下来的步骤来自 selenium2library,例如单击按钮。
执行停止,我收到消息 "No browser is open"。我知道我的 selenium2library 无法识别由我的自定义库打开的浏览器。但我无法解决这个问题。谁能给点建议
我的机器人文件:
Documentation Test the Guru99 Banking Website
Library Selenium2Library
Library CustomLibrary.py
*** Test Cases ***
Test Case: 001 - The user should be able to navigate to Guru99
[Tags] Smoke
Open the Guru99 website
*** Keywords ***
Open the Guru99 website
Open My Browser ```
当然,浏览器会话不会被重用 - 它由一个单独的对象拥有,SeleniumLibrary/Selenium2Library 不知道也无法访问它。
这与您手动建立 DB 或 ssh 连接,然后期待一个库开始使用它是一样的——这不会发生。
如果你想使用SeleniumLibrary中的关键字,你需要使用它的Open Browser
,所以它有引用它(浏览器)。
您可以添加外部 Python 类(关键字)作为 plugins。
*** Settings ***
Library SeleniumLibrary plugins=${CURDIR}/Plugin.py
*** Test Cases ***
Open My Browser
Open My Browser
Plugin.py
中的内容如下:
from SeleniumLibrary import BrowserManagementKeywords
from robot.api.deco import keyword
import time
class Plugin(BrowserManagementKeywords):
@keyword
def open_my_browser(self):
self.open_browser("http://demo.guru99.com/V4/", "chrome")
self.driver.maximize_window()
time.sleep(5)
顺便说一句,您也可以通过Extending SeleniumLibrary创建一个新的库。然后将Library Selenium2Library
替换为Library <YourSeleniumLibrary>
我是 Python 和 Robot 框架的初学者。我正在尝试在我的机器人框架测试套件中创建和学习使用自定义库。
我已经使用以下代码创建了一个自定义库:
from selenium import webdriver
import time
class CustomLibrary:
def Open_My_Browser(self):
browser = webdriver.Chrome()
browser.maximize_window()
browser.get("http://demo.guru99.com/V4/")
time.sleep(5)
我导入了这个自定义库并指定了关键字 "Open My Browser"。此关键字执行我的自定义库中的代码,但接下来的步骤来自 selenium2library,例如单击按钮。
执行停止,我收到消息 "No browser is open"。我知道我的 selenium2library 无法识别由我的自定义库打开的浏览器。但我无法解决这个问题。谁能给点建议
我的机器人文件:
Documentation Test the Guru99 Banking Website
Library Selenium2Library
Library CustomLibrary.py
*** Test Cases ***
Test Case: 001 - The user should be able to navigate to Guru99
[Tags] Smoke
Open the Guru99 website
*** Keywords ***
Open the Guru99 website
Open My Browser ```
当然,浏览器会话不会被重用 - 它由一个单独的对象拥有,SeleniumLibrary/Selenium2Library 不知道也无法访问它。
这与您手动建立 DB 或 ssh 连接,然后期待一个库开始使用它是一样的——这不会发生。
如果你想使用SeleniumLibrary中的关键字,你需要使用它的Open Browser
,所以它有引用它(浏览器)。
您可以添加外部 Python 类(关键字)作为 plugins。
*** Settings ***
Library SeleniumLibrary plugins=${CURDIR}/Plugin.py
*** Test Cases ***
Open My Browser
Open My Browser
Plugin.py
中的内容如下:
from SeleniumLibrary import BrowserManagementKeywords
from robot.api.deco import keyword
import time
class Plugin(BrowserManagementKeywords):
@keyword
def open_my_browser(self):
self.open_browser("http://demo.guru99.com/V4/", "chrome")
self.driver.maximize_window()
time.sleep(5)
顺便说一句,您也可以通过Extending SeleniumLibrary创建一个新的库。然后将Library Selenium2Library
替换为Library <YourSeleniumLibrary>