robotframework - 将 Robotframework 关键字和页面对象结合起来是好还是坏做法?

标签 robotframework

所以我有这种情况,我想将关键字文件与页面对象文件组合起来。

假设我有 foo.robot 作为关键字,bar.robot 作为页面对象:


#foo.robot
*** Settings ***
Ressource  bar.robot

*** Keywords ***
Click Submit Button
   Wait Untile Element Is Visible  ${variable_from_bar}  60s
   Click Button                    ${variable_from_bar}

#bar.robot
*** Variables ***
${variable_from_bar}               //button[@id="dummybutton"]

我的想法是像这样将它们结合起来

#foobar.robot

*** Variables ***
${variable_from_bar}               //button[@id="dummybutton"]

*** Keywords ***
Click Submit Button
   Wait Untile Element Is Visible  ${variable_from_bar}  60s
   Click Button                    ${variable_from_bar}

有什么特殊原因让我不应该进行这种练习吗?或者我以后应用后会遇到什么技术问题?

最佳答案

一般情况下,我建议将 .robot 重命名为 .resource,这样资源文件在命名时也可以与套件文件区分开来。

至于组合,我认为这不是一个坏方法,但层次结构可以更加分离。假设有跨多个页面使用的 Web 元素,您希望将它们放入独立于页面对象资源文件的单独资源文件中。

假设有一个独特的按钮。

按钮.资源

*** Keywords ***
Click Unique Button
    [Arguments]    ${button_locator}
    # Handle some unique behaviour
    Click Button    ${button_locator}

这可以跨多个页面使用,其中按钮的用途不同,ID 不同,但处理按钮点击的方式仍然相同。

PageA.资源

*** Settings ***
Resource    button.resource

*** Variables ***
${variable_from_bar}               //button[@id="dummybutton"]

*** Keywords ***
Do Stuff
    Click Unique Button    ${variable_from_bar}

PageB.资源

*** Settings ***
Resource    button.resource

*** Variables ***
${download_file}               //button[@id="downloadbutton"]

*** Keywords ***
Do Stuff
    Select File    my_file.txt
    Click Unique Button    ${download_file}

总而言之,您可以将页面对象关键字和定位器变量合并到同一个文件中,但您应该将通用的、页面独立的关键字保留在它们自己的资源文件中。

关于robotframework - 将 Robotframework 关键字和页面对象结合起来是好还是坏做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66456070/

相关文章:

selenium - 如何修复来自robotframework和seleniumlibrary的 "Non-existing setting"错误?

python - 使用 RBFW 解决了托斯卡谜题 73589。 (失败: SyntaxError: EOL while scanning string literal (<string>)

jenkins - 无法从 Jenkins 日志中打开机器人框架工作日志文件。抛出 'Allow-Script' 权限错误

colors - 如何使用 Robot Framework 在控制台输出中添加颜色

python - 有没有办法配置 Robot Framework,这样执行就不会因失败而停止

python - 无法打开骑行Python27

firefox - 如何使用机器人框架在firefox中设置自动下载excel的偏好

robotframework - 运行关键字如果不在机器人框架中?

robotframework - 瑞典字符和机器人框架

testing - 如何在机器人框架中设置多级测试设置/拆卸