Так что мне нужна помощь в создании для l oop для процесса селена с использованием python. Целью здесь является загрузка страницы на указанном c веб-сайте после аутентификации:
- Аутентификация на веб-сайте
- Загрузка Namekey
- Send_keys Namekey и Нажмите Enter
- Нажмите кнопку, чтобы удалить пользователя с Namekey из всех групп безопасности
- Нажмите OK, чтобы подтвердить
Для 3000 пользователей необходимо выполнить шаги 2-5. , Это код блока, который фактически выполняет этот процесс.
# Send Keys to Lookup
# XPATH = //*[@id='brSecuredUsersLookupInput']
target_user = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.XPATH, "//*[@id='brSecuredUsersLookupInput']")))
# Start Forloop
target_user.send_keys(config['sec_group_removal']['name_key']);
target_user.send_keys(Keys.RETURN);
# Expand Button on Element Needing Sec Group Removal
# Class "bd_open"
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.CLASS_NAME, "bd_closed")))
element.click()
# Click on Remove All Groups By Link Text
# find_elements_by_link_text
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.LINK_TEXT, "Remove All Groups")))
element.click()
# Click Ok by ID
# XPATH //*[@id='msgBtn1']
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.XPATH, "//*[@id='msgBtn1']")))
element.click()
# End For Loop
У меня есть четыре вопроса, связанных с этим:
- Могу ли я превратить это в for-l oop и загружать пользователей с помощью
JSON
или я должен составить словарь? - Как я могу go сделать for-l oop для итерации по этому процессу, если я сделаю оператор
for i in dictionary
, или оператор while
? - Мне нужно загрузить информацию из отдельного файла, так как я не хочу, чтобы ключи имен были жестко запрограммированы в скрипте.
JSON
лучший способ сделать это? У меня ранее была проблема с файлом JSON
, когда я пытался создать несколько пользователей, вложенных в файл JSON
, но он не работал. Возможно, не рекомендуется создавать словарь из вложенных JSON
? - Есть ли другой способ загрузить информацию из отдельного файла, отличного от этого:
# Load users.json File
with open('users.json','r') as f:
config = json.load(f)
Также вот файлы JSON, которые я использовал, чтобы помочь загрузить этот
файл JSON, который работает:
{
"sec_group_removal": {
"name_key": "<INSERT_NAMEKEY>"
}
}
это, очевидно, соответствует (config['sec_group_removal']['name_key'])
, но когда я использовал такой файл:
{
"sec_group_removal": {
"target_users": {
"user_1": {
"first_name": "<INSERT_FIRST_NAME>",
"last_name": "<INSERT_LAST_NAME>",
"user_name": "<firstname.lastname>",
"name_key": "<INSERT_NAMEKEY>"
},
"user_2": {
"first_name": "<INSERT_FIRST_NAME>",
"last_name": "<INSERT_LAST_NAME>",
"user_name": "<firstname.lastname>",
"name_key": "<INSERT_NAMEKEY>"
}
}
}
}
Мне не нужно использовать файл JSON
для его загрузки, например, у меня есть файл Excel, текстовый файл или файл CSV, который также содержит информацию, необходимую для размещения в имени пользователя. Любые мысли или указания здесь были бы хорошими. В любом случае, я не думаю, что загрузка JSON
из отдельного файла - это путь к go. Но ради любопытства это не сработало:
(config['sec_group_removal']['target_users']['user_1']['name_key'])
Более того, я понимаю, что сам файл ['user_1'] would have to be a variable defined from the
JSON`.