Я успешно использовал это пошаговое руководство https://www.appcoda.com/automated-ui-testing-appium/, чтобы понять, как работает appium. Теперь я хотел бы использовать этот процесс для тестирования моего личного приложения, однако я получаю сообщение об ошибке ниже из командной строки при запуске appium на моем скрипте Python. Я пытаюсь проверить, существует ли usernameTextField в пользовательском интерфейсе моих приложений.
Сообщение об ошибке:
> usernameTextField = self.driver.find_element_by_accessibility_id('usernameTextField')
response = {'status': 404, 'value': '{"value":{"error":"no such element","message":"An element could not be located on the page u....doNativeFind (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/lib/commands/find.js:130:13)"}}'}
> raise wde
E NoSuchElementException: Message: An element could not be located on the page using the given search parameters.
Мой скрипт на Python:
import unittest
import os
from random import randint
from appium import webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys
class LoginTests(unittest.TestCase):
def setUp(self):
app = ('/Users/ross/Desktop/gameApp/build/Release-iphonesimulator/GameApp.app')
self.driver = webdriver.Remote(
command_executor='http://127.0.0.1:4723/wd/hub',
desired_capabilities={
'app': app,
'platformName': 'iOS',
'platformVersion': '12.1',
'deviceName': 'iPhone XR',
'bundleId':'com.brian.gameApp'
}
)
def tearDown(self):
self.driver.quit()
def testInstitutionField(self):
sleep(3)
usernameTextField = self.driver.find_element_by_accessibility_id('usernameTextField')
institutionField.send_keys('Name')
institutionField.send_keys(Keys.RETURN)
sleep(1)
self.assertEqual(usernameTextField.get_attribute("value"), 'Name')
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(LoginTests)
unittest.TextTestRunner(verbosity=2).run(suite)
Как я установил элемент в объекте C
self.usernameTextField.isAccessibilityElement = YES;
self.usernameTextField.accessibilityIdentifier = @"usernameTextField";
Я попытался установить accessibilityIdentifier как в коде, так и на раскадровке в соответствии с пошаговым описанием, но, похоже, оба не работают.
Симулятор в настоящее время открывается и работает, однако не может найти элемент, указанный в сценарии / тесте.