Перейти к содержимому

Grigorev_AO

Регистрация: 27 янв 2023
Offline Активность: 22 мар 2023 06:22
-----

Мои темы

Ошибка кодировки в IDE при изменении файла .side через Python

17 марта 2023 - 13:22

Доброго дня!

 

Просьба помочь разобраться с ошибкой кодировки русского текста в Selenium IDE.

 

Какая была цель:

Автоматизировать обновление проекта .side, загружая в него напрямую актуальные sendKeys из api через python.

 

Предусловия:

1. В python делается api-запрос, ответом на который служит некий список (несколько сотен разных значений) в формате json .

2. Этот список переделывается в словарь питона.

3. Питон открывает файл проекта .side. Проект представляет из себя множество одинаковых тестов.

4. В команды sendKeys этих тестов питон вставляет по одному значению из списка, полученного через api-запрос.

5. Питон обновляет файл .side.

6. Файл .side обновлен актуальными значениями sendKeys, успех. Тест становится актуальным/валидным

 

В чём ошибка:

Вместо русских символов в интерфейсе Selenium IDE стоят знаки вопроса (ошибка кодировки) (скрин 1):

Прикрепленный файл  1.png   95,67К   0 Количество загрузок:

 

Код python, отвечающий за изменение файла .side:

 

with open("C:\\test.side", "r") as file:

  old_version = file.read()

 

with open("C:\\test.side", "r") as file:
  result = json.loads(file.read())
  counter = 0
  tests = result.get("tests")
  for test in tests:
    commands = test.get("commands")
    for command in commands:
      if "sendKeys" in command.values():
        if counter >= len(buildings):
          break
        test["name"] = buildings[counter]
        command["value"] = buildings[counter]
        counter += 1

resultJson = json.dumps(result, ensure_ascii=False)

new_data = old_version.replace(old_version, resultJson)

with open("C:\\test.side", "w") as file:
  file.write(new_data)

 

 

Вопрос:

 

Что нужно добавить в код, чтобы IDE нормально воспринимала его кодировку? 

Визуально, если открыть файл .side, весь русский текст отображается корректно (в блокноте).

Заранее большое спасибо за ответ.