Предполагая, что есть страница с кнопками, которые имеют OnClick события вида:Trigger OnClick события на несвежем/nonexistant elment
<a onclick="doSomething($id)"></a>
идентификаторов являются постоянными, но иногда ссылка еще не загружена, или уже черствой и вам нужно будет перезагрузить их.
Возможно ли инициировать событие onclick в Selenium без получения webelement и click()
или изменить идентификатор события onclick существующего веб-элемента?
Edit: Наиболее перспективным на данный момент является использование JavaScript:
wd.execute_script("document.getElementById('what').onclick = function() { dosmth($id); };")
Но это не меняет идентификатор заметно в хром элемента инспектора, а также связь не делает ничего больше. У меня есть ошибка в синтаксисе js? Кроме того, когда я вручную изменяю идентификатор в инспекторе элементов chrome, он работает нормально.
Это сделал трюк для меня:
self.execute_script("document.getElementById('what').setAttribute('onclick', 'dosmth($id)');")
Спасибо, но перезарядка или ожидание было именно то, что я хотел бы избежать. – genomnemmon
@genomnemmon хорошо, обновлено. Помогает ли это? Благодарю. – alecxe