如何使用robotframework修改HTML文件并通过浏览器打开它?

问题描述 投票:0回答:1

我正在使用 Robot Framework 处理一个场景,其中我需要修改 HTML 文件中的三个值,然后使用 Chrome 执行它。然而,我正在努力寻找有关如何实现这一目标的信息,特别是因为我熟悉加载 JSON 和 XML 文件,但找不到加载 HTML 文件的方法。

有人有什么建议吗?

这是 HTML 文件的内容:

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>The Title</title>
  <meta name="author" content="SitePoint">
  <link rel="stylesheet" href="css/styles.css?v=1.0">
</head>
 
<body>
  <form id="formulaire" method="post" action="Variable1"> 
  <input type="hidden" id="PaReq" name="PaReq" value="Variable2"/>   
  <input type="hidden" id="TermUrl" name="TermUrl" value="Variable3"/>   
  <input type="hidden" id="MD" name="MD" value=""/>   
</form>
 
<script>
    document.forms[0].submit();
</script>
</body>
</html>
automated-tests robotframework
1个回答
0
投票

我一直在寻找库或预定义的方法来执行此操作,但什么也没找到, 所以我制作了一个简单的Python脚本,稍后我将在robotframework关键字中使用它, 这是代码

# update_html.py
import os
import sys
from bs4 import BeautifulSoup

def update_html(file_path, new_action, new_pareq_value, new_termurl_value):
    file_path = os.path.join(os.path.dirname(__file__), 'templates', 'acs.html')
    with open(file_path, 'r', encoding='utf-8') as file:
        soup = BeautifulSoup(file, 'html.parser')

    form = soup.find('form')
    form['action'] = new_action

    pareq_input = soup.find('input', {'id': 'PaReq'})
    pareq_input['value'] = new_pareq_value

    termurl_input = soup.find('input', {'id': 'TermUrl'})
    termurl_input['value'] = new_termurl_value

    with open(file_path, 'w', encoding='utf-8') as file:
        file.write(str(soup))

if __name__ == "__main__":
    # Vérifier si le bon nombre d'arguments a été fourni
    if len(sys.argv) != 4:
        print("Usage: python update_html.py <new_action> <new_pareq_value> <new_termurl_value>")
        sys.exit(1)

    new_action = sys.argv[1]
    new_pareq_value = sys.argv[2]
    new_termurl_value = sys.argv[3]

    update_html('acs.html', new_action, new_pareq_value, new_termurl_value)

为了执行它,我添加了一个库 Process 然后我用了 运行进程 python3 ${script_path} ${paReq} ${termUrl} ${redirectionUrl}

© www.soinside.com 2019 - 2024. All rights reserved.