То, что я пытаюсь сделать, - это подать файл 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' не вызывается
Я не уверен точно, на какую часть это имеется в виду, любая помощь будет оценена.