Я делаю бота для игры тральщик, в котором мне нужно иметь возможность щелкать правой кнопкой мыши плитки, чтобы предупредить о бомбах. Я создал функцию для нажатия на плитки со следующим кодом:
from selenium import webdriver
from selenium.webdriver import ActionChains
def click(rad, kol, bomb = False):
if int(rad) > 0 and int(kol) > 0:
tile = driver.find_element_by_xpath('//*[@id="{}_{}"]'.format(int(rad), int(kol)))
if bomb == False:
#Left click
tile.click()
else:
#Right click
actionChains.context_click(tile).perform()
print("Right click")
Но потом, когда я вызываю функцию со следующим кодом:
click(10, 10, True)
click(5, 5, True)
click(1,1,True)
Обе плитки с координатами (10, 10) и (5,5) включаются и выключаются, но только (10,10) включаются снова. В то же время плитка с координатой (1,1) не включается и не выключается, а работает правильно.
Я распечатывал каждый раз, когда запускался код для щелчка правой кнопкой мыши, и 3 раза выводился «щелчок правой кнопкой мыши». я должен.
Редактировать: Я выяснил, что проблема, вероятно, в том, что actionChains запоминают свои предыдущие действия и поэтому снова нажимают на все плитки. Но я не могу понять, как удалить предыдущие действия цепочки. Кажется, функция reset_actions () не удаляет какое-либо действие