【问题标题】:reading data from the json file in Python for automating the web application从 Python 中的 json 文件中读取数据以自动化 Web 应用程序
【发布时间】:2017-06-15 14:16:07
【问题描述】:

我有一个用于自动化 Web 应用程序的代码(我正在使用 Python 和 Selenium),我在其中输入静态数据,我想使用 JSON 文件将数据发送到应用程序,任何人都可以帮助我如何编写代码以从 JSON 文件中选择。这是我的代码:-

import unittest
from selenium import webdriver
name = driver.find_element_by_xpath("some xpath").send_keys("xxxx")
pass = driver.find_element_by_xpath("some xpath").send_keys("xxxx")
phone_no = driver.find_element_by_xpath("some xpath").send_keys("xxxx")

请帮助我如何从 json 文件中读取数据。

【问题讨论】:

    标签: python json selenium xpath


    【解决方案1】:

    不确定这是否是您要查找的内容,但最简单的 json 读取方法是使用 json 模块。 json.load 将 json 反序列化为 python 对象,通常是字典。

    import json
    
    with open('file-name.json') as data_file:    
        data = json.load(data_file)
    
    # access json (now python object) like this... data['some-field']
    

    【讨论】:

    • 感谢您的回答,我会尝试在我的代码中使用它
    • 更短的代码将data = json.load(open(data_file)) 放在一行中,并且可以实现将文件读入变量作为json数据的相同目标。
    【解决方案2】:

    当使用send_keys函数时,不能直接发送json,因为它会在每个json属性后添加'\n'。以下是三种方法:

    方式 1 - 不要用作 json,只使用纯文本

    path = os.path.abspath("../excel_upload.json")
    with open(path, "r") as fp:
        obj = fp.readlines()
        print(str(obj))
                    driver.find_element_by_name("name").send_keys((obj))
    

    方式二——json的序列化,采用Dict的形式,使用json.dumps

    方式 3 - 加载 json,然后将 '\n' 放入字符串中。

    我使用第一种方式获取完整的 json 文本,而第二种方式使用密钥对。会有更好的方法,请更新更好的解决方案。

    加载和读取 json 很好,但在 send_keys 中使用它是一个不同的问题。

    【讨论】:

      猜你喜欢
      • 2017-02-02
      • 2020-09-09
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2013-02-04
      • 1970-01-01
      相关资源
      最近更新 更多