【发布时间】:2020-02-09 14:02:33
【问题描述】:
我正在为游戏扫雷游戏做一个机器人,我需要能够在其中右键单击图块以警告炸弹。我使用以下代码创建了一个用于单击图块的函数:
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() 函数似乎没有删除任何操作
【问题讨论】:
标签: python selenium selenium-webdriver right-click