硒右键单击有时会双击

时间:2020-02-09 14:02:33

标签: python selenium selenium-webdriver right-click

我正在为扫雷游戏做一个机器人,在其中我需要能够右键单击磁贴以警告炸弹。我创建了一个函数,用于单击带有以下代码的图块:

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()函数似乎并未删除任何动作

1 个答案:

答案 0 :(得分:0)

我看到reset_actions报告了一些错误 https://github.com/SeleniumHQ/selenium/issues/6837 但它已关闭并且应该没问题(我的计算机上也有此问题)...尝试更新驱动程序,或者我想如果这样做没有帮助,请再在{{1}中分配actionChains }语句。这是我目前想到的唯一快速解决方案。

if