如何使用Appium和Python单击具有相同类的多个按钮

时间:2020-09-25 18:56:54

标签: python appium

我正在尝试创建一个自动取消关注Depop上所有当前关注用户的机器人。

在不跟随关注的用户列表中的第一个用户的情况下,我可以得到它。

问题是,所有取消关注按钮都使用带有“关注中”文本的同一类

我创建了一个while循环,希望它可以单击包含文本“ Following”的所有当前显示的按钮。然而;只会“点击”第一个按钮。

    unfollow = 'yes'
    while unfollow == 'yes':
        if driver.find_element_by_class_name('android.widget.Button'):
        followBtn = driver.find_element_by_class_name('android.widget.Button')
        btnText = followBtn.text

        if btnText == 'Following':
            followBtn.click()
        else:
            unfollow = 'no'

1 个答案:

答案 0 :(得分:0)

您应该使用driver.find_elements()并将所有元素存储在字典中并对其进行迭代。 最后,再次检查是否存在任何按钮,也不能使用driver.find()作为条件,而应该使用try / except块来实现。

这就是答案:

unfollow = 'yes'
while unfollow == 'yes':
  try:
    driver.find_element_by_class_name('android.widget.Button')
  except:
    return
  elements = driver.find_elements_by_class_name('android.widget.Button')
  for el in elements:
  btnText = el.text
  if btnText == 'Following':
      el.click()
  else:
    unfollow = 'no'
    return