首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >机器人脚本执行过程中变量的动态变化

机器人脚本执行过程中变量的动态变化
EN

Stack Overflow用户
提问于 2022-07-06 09:42:30
回答 1查看 54关注 0票数 0

我正在编写一个机器人脚本,它可以在请求一次性密码(OTP)的页面中导航。流程是脚本将打开一个应用程序,然后它将等待一个OTP,我将手动输入OTP到机器人脚本中,以便它继续运行。但是,这对我没有用。

以下是我到目前为止所拥有的:

test.robot

代码语言:javascript
复制
***Settings***
Variables       OTP.py

***Test Cases***
Open Application
    Open Application 

Enter OTP
    Sleep       5
    Input Text      textbox      ${otp}     

OTP.py

代码语言:javascript
复制
otp = "12345"

所以我要做的是运行应用程序,当应用程序到达它提示输入OTP的页面时,在睡眠(5)期间,我将更改OTP.py中OTP的值,以便机器人脚本调用正确的值,继续前进。但是,它总是返回前一个值(在此情况下,在更改之前,为12345 )。

有人知道我可以在执行过程中动态地更改值吗?非常感谢,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-07-06 10:32:00

首先,测试期间用户输入的最佳解决方案是Dialogs库,它是标准库的一部分。所以你的案子看起来是:

代码语言:javascript
复制
*** Settings ***
Library    Dialogs

*** Keywords ***
Enter OTP
    ${otp}    Get Value From User    Please provide OTP code
    Input Text      textbox      ${otp}

但是这个解决方案并不可靠,取决于用户的交互。更好的解决方案是使用pyotp编写自定义python关键字,这将为您生成OTP代码。此类关键字的示例示例可以如下所示:

代码语言:javascript
复制
# OTPCodes.py
import pyotp


class OTPCodes:

    def generate_otp_code(self, secret):
        totp = pyotp.TOTP(secret)
        return totp.now()

在机器人中:

代码语言:javascript
复制
*** Settings ***
Library    OTPCodes.py

*** Keywords ***
Enter OTP
    ${otp}    Generate Otp Code    <SECRET>
    Input Text      textbox      ${otp}

更好的解决方案不是将SECRET作为参数传递,而是从环境变量中获得它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72881238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档