【问题标题】:Appium python : multiple clickAppium python:多次单击
【发布时间】:2017-12-14 13:29:53
【问题描述】:

我有一个问题要问你,

在我的应用程序中,我想在一个按钮上单击多次 (10)。 但是应用程序不接受点击选项,所以下面的代码不起作用:

         multi_click = TouchAction(self.driver)
         multi_click.tap(self.driver.find_element_by_id('logo'),0,0,8)

如果我设置一个“while”,点击动作太慢而无法作为多次点击:

     while i < 10: 
         self.driver.find_element_by_id('logo').click()
         i+= 1
         print (i)

你有什么想法吗?

问候

【问题讨论】:

  • 您尝试运行的代码是否也被注释掉了?如果不是,为什么您问题中的代码被注释掉了?
  • 不,它没有评论,只是一个糟糕的复制和粘贴
  • 完成了。你知道我的问题吗?

标签: python appium python-appium


【解决方案1】:

您是否尝试过使用 ADB 进行此类多次点击?

这是伪代码...不确定 100% 是否可以工作,现在无法测试...

def sendClickByAdb(self, logo):
   x = logo.location['x']
   y = logo.location['y']
   procId = subprocess.Popen('adb shell', stdin = subprocess.PIPE)
   while i < 10:
      procId.communicate('input tap '+str(x)+' '+str(y))
      i+=1
      print(i)

而您唯一需要知道的就是调用该方法:

self.sendClickByAdb(self.driver.find_element_by_id('logo'))

希望对你有帮助

【讨论】:

  • 谢谢你的回复 但问题是一样的,你的方法每次点击之间的延迟最多1-2秒。所以应用程序不会将其视为双/三/...点击
  • 您可以尝试保存您的 X 和 Y 坐标,转到 cmd,然后输入“adb shell input tap x y”,然后以足够快的速度执行操作,看看它是否有效?我想它不会起作用,但是你将不得不尝试我的 python 方法,每次点击都使用 Threading
  • 顺便说一句...另一件事...你能试试这个吗? procId.communicate('input tap x y\ninput tap x y\ninput tap x y\ninput tap x y\ninput tap x y\ninput tap x y.....') 不使用任何循环,只是10次'input tap x y'
  • "adb shell input tap x y"
  • "adb shell input tap x y" 这个命令足够快,运行良好,所以我认为 appium 只是慢了......但是我找到了另一个运行良好的解决方案(但不是很漂亮):导入shlex toto = 'adb shell 输入抽头 100 100 && 输入抽头 100 100 && 输入抽头 100 100 && 输入抽头 100 100 && 输入抽头 100 100 && 输入抽头 100 100 && 输入抽头 100 100 && 输入抽头 100 100 && 输入抽头 100 100 && input tap 100 100' subprocess.Popen(shlex.split(toto),stdin = subprocess.PIPE) (对不起,重复发帖)
【解决方案2】:

单击此元素是否会生成到另一个屏幕的导航?

如果没有,您是否只尝试一次搜索该元素(在您的循环之外)?

可能会更快。

logo = self.driver.find_element_by_id('logo')
while i < 10: 
    logo.click()
    i+= 1
    print (i)

【讨论】:

  • 感谢您的回复 但是,使用您的方法,每次点击之间的延迟最多为 1-2 秒。这和元素完全一样。点击循环...
猜你喜欢
  • 2015-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 2021-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多