首页 > 解决方案 > 使用给定的搜索参数无法在页面上找到元素

问题描述

Appium 自动化在一个类中正确运行和结束,但在创建另一个类时失败。

我试图删除init中的所有属性,除了第一个属性,它有帮助。

主课(效果很好)

import unittest
from appium import webdriver
from ScreenObjects.SendMessage import SendMsg


class AppTestAppium(unittest.TestCase):

  def setUp(self):
      desired_caps = {}
      desired_caps['platformName'] = 'Android'
      desired_caps['platformVersion'] = ''
      desired_caps['deviceName'] = '81e9b20e'
      desired_caps['appPackage'] = 'org.telegram.messenger'
      desired_caps['appActivity'] = 'org.telegram.ui.LaunchActivity'
      desired_caps['noReset'] = 'True'
      self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)

  def tearDown(self):
      "Tear down the test"

      self.driver.quit()


  def test_send_messge_to_olga(self):
      "Test is sending message"


      contactItem = self.driver.find_element_by_xpath("//android.view.ViewGroup[contains(@index,'2')]")
      contactItem.click()
      elementTypeField = self.driver.find_element_by_xpath("//android.widget.EditText[contains(@index,'1')]")
      elementTypeField.clear()
      elementTypeField.send_keys("Hello. If you are reading this, my first appium automation has passed")
      sendButton = self.driver.find_element_by_xpath("//android.widget.ImageView[@content-desc ='Send']")
      sendButton.click()



if __name__ == '__main__':
    unittest.main()

主要课程(失败)

import unittest
from appium import webdriver
from ScreenObjects.SendMessage import SendMsg


class AppTestAppium(unittest.TestCase):

  def setUp(self):
      desired_caps = {}
      desired_caps['platformName'] = 'Android'
      desired_caps['platformVersion'] = ''
      desired_caps['deviceName'] = '81e9b20e'
      desired_caps['appPackage'] = 'org.telegram.messenger'
      desired_caps['appActivity'] = 'org.telegram.ui.LaunchActivity'
      desired_caps['noReset'] = 'True'
      self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)

  def tearDown(self):
      "Tear down the test"

      self.driver.quit()


  def test_send_messge_to_olga(self):
      "Test is sending message"

      send_message = SendMsg(self.driver)
      send_message.chooseContact()
      send_message.typeMsg()
      send_message.clickSend()


if __name__ == '__main__':
    unittest.main()

多一堂课(失败)



class SendMsg(object):

    def __init__(self, driver):
        self.contactItem = driver.find_element_by_xpath("//android.view.ViewGroup[contains(@index,'2')]")
        self.elementTypeField = driver.find_element_by_xpath("//android.widget.EditText[contains(@index,'1')]")
        self.sendButton = driver.find_element_by_xpath("//android.widget.ImageView[@content-desc ='Send']")


    def chooseContact(self):
        self.contactItem.click()

    def typeMsg(self):
        self.elementTypeField.clear()
        self.elementTypeField.send_keys("Hello")

    def clickSend(self):
        self.sendButton.click()

我希望测试通过,但实际输出是“使用给定的搜索参数无法在页面上找到一个元素。”

标签: pythonunit-testingappium

解决方案


推荐阅读