JSON-файл, используемый для генерации проблемы селенового кода - PullRequest
0 голосов
/ 03 июля 2019

То, что я пытаюсь сделать, - это подать файл JSON с веб-сайта, который выглядит следующим образом:

Пример JSON

    #{
    #   "register": [
    #       "https:\/\/www.site.com\/register.php|0|0|SEND_URL",
    #       "name|username|0|SEND_USERNAME"
    #   ]
    #}

Я поставил только 2 тестовых поля для целей тестирования, каждая строка будет состоять из 4 частей (0 означает игнорировать это), я не уверен, если мне нужно 4, я могу изменить, как мне нужно в будущем.

Разбивка значений:

name = the id of the field
username is the name of the field
0 = ignore
SEND_USERNAME = means sendkeys the username value

Я настроил базовую функцию для возврата кода селена для взаимодействия с веб-страницей.

Код:

    def get_identifier(self, identifier):
        final_identifier = ""
        if identifier == "id":
            final_identifier = "find_element_by_id"
        elif identifier == "name":
            final_identifier = "find_element_by_name"
        return final_identifier


    def prepare_fields(self, url_or_identifier, html_identifier, name_this, action_to_take):
        #{
        #   "register": [
        #       "https:\/\/www.thesite.com\/register.php|0|0|SEND_URL",
        #       "name|username|0|SEND_USERNAME"
        #   ]
        #}
        final_string = ""
        if action_to_take == "SEND_URL":
            final_string == self.driver.get(url_or_identifier)
        elif action_to_take == "SEND_USERNAME":
            final_string == self.driver + self.get_identifier(identifier)(html_identifier).send_keys(username)
        print(final_string)
        return final_string


    def mode_register(self, username, password, email, captcha_key, _sleep, _json):       
        try:

            json_string = json.loads(_json)
            if "register" in json_string:
                for register in json_string["register"]:
                    register_parts = register.split("|")
                    self.prepare_fields(register_parts[0], register_parts[1], register_parts[2], register_parts[3])

        except Exception as e: 
            self.print_exception()

Я получаю ошибку:

"self.prepare_fields (register_parts [0], register_parts [1], register_parts [2], register_parts [3])"): объект 'str' не вызывается

Я не уверен точно, на какую часть это имеется в виду, любая помощь будет оценена.

1 Ответ

0 голосов
/ 03 июля 2019

self.get_identifier метод возвращает строку в соответствии с вашим кодом, это не функция

, которую вы рассматриваете как функцию и передаете html_identifier, что неправильно.

self.get_identifier (идентификатор) (html_identifier) ​​

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...