Итак, мне было поручено удалить группы безопасности из нескольких пользователей, которые неактивны в нашей базе данных на внешнем интерфейсе. Мне запрещено управление бэкэндом. Так что я автоматизирую его с помощью Selenium и Python. Мне было любопытно узнать о следующей трассировке стека, получаемой из моей процедуры:
File ".\remove_sec_groups_inactive_users.py", line 127, in <module>
element.send_keys(config['sec_group_removal']['target_user']['name_key']);
File "C:\Python38\lib\site-packages\selenium\webdriver\remote\webelement.py", line 477, in send_keys
self._execute(Command.SEND_KEYS_TO_ELEMENT,
File "C:\Python38\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=80.0.3987.149)
Проблема заключается в коде где-то в этой части.
# Load users.json File
with open('users.json','r') as f:
config = json.load(f)
# Send Keys to Lookup
# XPATH = //*[@id='brSecuredUsersLookupInput']
target_user = browser.find_element_by_id("brSecuredUsersLookupInput")
element.send_keys(config['sec_group_removal']['target_user']['name_key']);
element.send_keys(Keys.RETURN);
Я хотел бы иметь возможность привлечь больше пользователей с файлом JSON для полезной нагрузки, но по какой-то странной причине это не нравится. Я думал об использовании
(config['sec_group_removal']['target_users']['user']['name_key'])
из файла, который выглядит следующим образом:
{
"sec_group_removal": {
"target_user": {
"user": {
"user_name": "firstname.lastname",
"name_key": "ABDLFNSDFKNE0033"
}
}
}
}
Увы, это тоже не работает, поэтому я использую следующее:
{
"sec_group_removal": {
"target_user": {
"user_name": "NNNNNNN",
"name_key": "######"
}
}
}
В любом случае мне не нужно отправлять нужные мне ключи в компонент l oop для поиска пользователя:

I нужна помощь с отправкой строки в этот поиск, ниже находится веб-элемент:
<input class="lookupInput" type="text" name="brSecuredUsersLookupInput" id="brSecuredUsersLookupInput" title="Last First, Name Key, SSN, Name ID, Login" style="width: 100px;" tabindex="1" onkeydown="return lookupKeyPressed(event,"","ssusrbrws001.w")" origvalue="" det="true" aria-labelledby="" autocomplete="off">