Я только начал работать с веб-драйвером Selenium, чтобы попытаться автоматизировать нажатие кнопки в раздорном чате на основе предварительных условий. Проблема, с которой я столкнулся, заключается в возможности классифицировать эту кнопку.
Для начала код HTML выглядит следующим образом:
<div tabindex="0" class="reactionInner-15NvIl" aria-label="♥️, press to react" aria-pressed="false" role="button"><img src="/assets/1afd3c799f3e158662a70498e83e2a87.svg" alt="♥️" draggable="false" class="emoji"><div class="reactionCount-2mvXRV" style="min-width: 9px;">1</div></div>
Сначала я попытался найти find_element_by_xpath:
driver.find_element_by_xpath('/html/body/div/div[1]/div/div[2]/div/div/div/div[2]/div[2]/div[2]/div[1]/div[1]/div/div/div[48]/div[1]/div[2]/div[2]/div[1]/div/div').click()
Но когда появляется новая возможность для этой реакции, xpath изменяется:
/html/body/div/div[1]/div/div[2]/div/div/div/div[2]/div[2]/div[2]/div[1]/div[1]/div/div/div[50]/div[1]/div[2]/div[2]/div[1]/div/div
Обратите внимание на единственную часть, заменяющую это div [48] на div [50]
Следующее, что я попробовал, было найти имя_класса_класса:
element = driver.find_element_by_class_name('reactionInner-15NvIl')
driver.execute_script("arguments[0].click();", element)
Причина, по которой я это сделал, заключалась в том, что у меня возникла проблема с простым выполнением:
driver.find_element_by_class_name('reactionInner-15NvIl').click()
Это Код выдаст мне ошибку, говорящую Message: element click intercepted: Element <div tabindex="0" class="reactionInner-15NvIl" aria-label="?, press to react" aria-pressed="false" role="button">...</div> is not clickable at point (405, 94). Other element would receive the click: <span id="NewMessagesBarJumpToNewMessages_122" class="span-3ncFWM">...</span>
, и код не будет работать. Программа запускается с execute_script, но она ничего не делает, кнопка не нажимается. Так что, если у кого-то есть идеи, как можно нажать эту кнопку, любая помощь будет признательна!