python - 使用给定的搜索参数无法在页面上找到元素
问题描述
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()
我希望测试通过,但实际输出是“使用给定的搜索参数无法在页面上找到一个元素。”
解决方案
推荐阅读
- c# - 如何重命名 Blazor WASM 项目?
- python-3.x - 调用 o1964.collectToPython 时出错。:org.apache.spark.SparkException:作业因阶段失败而中止:任务0
- python - 从python3中的整数列表返回排名模式的最有效方法是什么?
- java - 如何通过 Google Play 结算库传递用户 ID?
- php - 在 debian 中找不到 glob 'php8.0' 的任何包
- c# - 在这种特殊情况下可能需要 GC.Collect() 吗?
- django - 我们可以在 django 中创建多个视图吗
- javascript - Vuejs 上的 Momentjs 倒数计时器
- rest - 将 Swagger UI 嵌入到 Blazor 服务器端应用程序中
- javascript - 如何使用匹配数组中的每个元素来创建对象?