失败时无法运行关键字“Capture Page Screenshot”:无法访问执行内容

2024-09-25 00:33:21 发布

您现在位置:Python中文网/ 问答频道 /正文

如何访问程序中的执行上下文以捕获屏幕截图? 以下程序将失败,因为contain text不存在。在

from ExtendedSelenium2Library import ExtendedSelenium2Library
import logging

class firsttest():


    def googleit(self):
        self.use_url = 'https://google.ca'
        self.use_browser = 'chrome'

        s2l = ExtendedSelenium2Library()
        s2l.open_browser(self.use_url, self.use_browser)
        s2l.maximize_browser_window()

        try:
            # Should fail
            s2l.page_should_contain('this text does not exist on page')
        except:
            logger.debug('failed')


runit = firsttest()
runit.googleit()

当我运行这个程序得到警告

^{pr2}$

Tags: textimportself程序browserurl屏幕use
2条回答

你必须使用robot来执行测试,你不能仅仅实例化类并期望它们工作。它们被设计成只有在机器人运行时才能工作。在

如果您需要用python编写测试,则不需要使用ExtendedSeleniumLilbrary,您可以直接从python调用seleniumapi。在

问题可能源于这样一个事实:您没有为Robot框架以正确的格式编写python库。在

以下是在Robot框架中编写Python代码的正确格式:

from robot.libraries.BuiltIn import BuiltIn

class ClickAnElement(object):
    def __init__(self):
        self.selenium_lib = BuiltIn().get_library_instance('ExtendedSelenium2Library')

    def click_an_element(self, locator):
        BuiltIn().click_element(locator)

它是如何工作的(我相信)是在Robot框架中,在你的*** Settings ***部分用Library ClickAnElement.py调用这个库。它将激活__init__函数。然后你可以像调用selenium2库中的关键字一样调用关键字。因此,如果我以正确的格式重新编写您发布的代码,它将如下所示:

^{pr2}$

那么,我的.robot文件将如下所示:

*** Settings ***
Library     FirstTest

*** Test Cases ***
Test Google It
    Google It

您正在编写一个Python文件,以便在Robot框架的之外工作。如果你想让它在Robot框架的内部工作,你需要使用正确的库格式。在

请注意,我只是格式化你的代码,而不是测试它。我不能,因为我没有你的应用程序来测试它。在

相关问题 更多 >