Python 无法使用AltUnity Tester for IOS模拟器版本自动测试Unity应用程序

Python 无法使用AltUnity Tester for IOS模拟器版本自动测试Unity应用程序,python,selenium,unity3d,automation,ios-simulator,Python,Selenium,Unity3d,Automation,Ios Simulator,我已经使用在Unity编辑器中运行的AltUnity Tester成功地在Python中为我的Unity应用程序执行了自动测试脚本。但是,我在IOS模拟器中执行相同的Python脚本时遇到问题。我能够建立到13000服务器的连接,但在尝试与元素交互时会出错 以下是编辑器代码: import os import unittest import time from appium import webdriver from appium.webdriver.common.mobileby import

我已经使用在Unity编辑器中运行的AltUnity Tester成功地在Python中为我的Unity应用程序执行了自动测试脚本。但是,我在IOS模拟器中执行相同的Python脚本时遇到问题。我能够建立到13000服务器的连接,但在尝试与元素交互时会出错

以下是编辑器代码:

import os
import unittest
import time
from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy
#from altunityrunner import AltrunUnityDriver
#from altunityrunner import By
from altunityrunner import *


class SimulatorTest(unittest.TestCase):
    altdriver = None


    @classmethod
    def setUpClass(cls):
        print("here we go!")
        cls.altdriver = AltUnityDriver(None, 'ios','127.0.0.1',13000,log_flag = True)

    @classmethod
    def tearDownClass(cls):
        print("we're done!")
        cls.altdriver.stop()
        

    def test_play(cls):
        time.sleep(10)
        cls.altdriver.find_object(By.NAME,"AnimatedPlayButton").tap()

        print("Done")

        cls.altdriver.stop()

if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(SimulatorTest)
    result = unittest.TextTestRunner(verbosity=2).run(suite)
    sys.exit(not result.wasSuccessful())
以下是IOS模拟器代码:

import os
import unittest
import time
from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy
#from altunityrunner import AltrunUnityDriver
#from altunityrunner import By
from altunityrunner import *
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

class SimulatorTest(unittest.TestCase):
    altdriver = None
    platform = "ios"

    @classmethod
    def setUpClass(cls):
        cls.desired_caps = {}
        cls.desired_caps['platformName'] = 'iOS'
        cls.desired_caps['deviceName'] = 'iPhone 11'
        cls.desired_caps['automationName'] = 'XCUITest'
        cls.desired_caps['platformVersion'] = '13.4'
        app = os.path.abspath('/Users/domenicsorace/Desktop/Build/Products/ReleaseForRunning-iphonesimulator/twodotsdev.app')
        cls.desired_caps['app'] = app
        cls.driver = webdriver.Remote('http://localhost:4723/wd/hub', cls.desired_caps)
        
        wait = WebDriverWait(cls.driver, 5)
        # close the iOS pop up
        element = wait.until(EC.element_to_be_clickable((MobileBy.ID, "Allow")))
        cls.driver.switch_to.context('NATIVE_APP')
        cls.driver.find_element_by_id("Allow").click()
        cls.altdriver = AltUnityDriver(None, 'ios','192.168.0.3',13000,log_flag = True)

    @classmethod
    def tearDownClass(cls):
        cls.altdriver.stop()
        

    def test_play(cls):
        cls.altdriver.find_object(By.NAME,"AnimatedPlayButton").tap()
        print("Done")

if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(SimulatorTest)
    result = unittest.TextTestRunner(verbosity=2).run(suite)
    sys.exit(not result.wasSuccessful())
错误:

2020-09-18 15:41:34.730 | DEBUG    | altunityrunner.commands.base_command:recvall:46 - Received data was: error:unknownError;System.Exception: Expected / or // instead of None
  at Assets.AltUnityTester.AltUnityServer.AltUnityBaseClassFindObjectsCommand.SetCondition (System.Collections.Generic.List`1[T] list) [0x00000] in <00000000000000000000000000000000>:0
  at Assets.AltUnityTester.AltUnityServer.AltUnityBaseClassFindObjectsCommand.ProcessPath (System.String path) [0x00000] in <00000000000000000000000000000000>:0
  at Assets.AltUnityTester.AltUnityServer.Commands.AltUnityFindObjectCommand.Execute () [0x00000] in <00000000000000000000000000000000>:0
  at AltUnityCommand+<>c__DisplayClass0_0.<SendResponse>b__0 () [0x00000] in <00000000000000000000000000000000>:0
  at AltResponseQueue.Cycle () [0x00000] in <00000000000000000000000000000000>:0
2020-09-18 15:41:34.730 | DEBUG    | altunityrunner.commands.command_returning_alt_elements:get_alt_element:16 - error:unknownError;System.Exception: Expected / or // instead of None
  at Assets.AltUnityTester.AltUnityServer.AltUnityBaseClassFindObjectsCommand.SetCondition (System.Collections.Generic.List`1[T] list) [0x00000] in <00000000000000000000000000000000>:0
  at Assets.AltUnityTester.AltUnityServer.AltUnityBaseClassFindObjectsCommand.ProcessPath (System.String path) [0x00000] in <00000000000000000000000000000000>:0
  at Assets.AltUnityTester.AltUnityServer.Commands.AltUnityFindObjectCommand.Execute () [0x00000] in <00000000000000000000000000000000>:0
  at AltUnityCommand+<>c__DisplayClass0_0.<SendResponse>b__0 () [0x00000] in <00000000000000000000000000000000>:0
  at AltResponseQueue.Cycle () [0x00000] in <00000000000000000000000000000000>:0
2020-09-18 15:41:34.730 | DEBUG | altunityrunner.commands.base|u命令:recvall:46-收到的数据为:错误:未知错误;System.Exception:应为/或//而不是无
位于Assets.AltUnityTester.AltUnityServer.AltUnityBaseClassFindObjectsCommand.SetCondition(System.Collections.Generic.List`1[T]List)[0x00000]中:0
位于:0中的Assets.AltUnityTester.AltUnityServer.AltUnityBaseClassFindObjectsCommand.ProcessPath(System.String路径)[0x00000]处
在0中的Assets.AltUnityTester.AltUnityServer.Commands.altunityfinobjectcommand.Execute()[0x00000]处
在AltUnityCommand+c_uuuu上显示Class0_0.b_uu0()[0x00000]in:0
在AltResponseQueue.Cycle()[0x00000]中:0
2020-09-18 15:41:34.730调试altunityrunner.commands命令返回alt元素:get alt元素:16错误:未知错误;System.Exception:应为/或//而不是无
位于Assets.AltUnityTester.AltUnityServer.AltUnityBaseClassFindObjectsCommand.SetCondition(System.Collections.Generic.List`1[T]List)[0x00000]中:0
位于:0中的Assets.AltUnityTester.AltUnityServer.AltUnityBaseClassFindObjectsCommand.ProcessPath(System.String路径)[0x00000]处
在0中的Assets.AltUnityTester.AltUnityServer.Commands.altunityfinobjectcommand.Execute()[0x00000]处
在AltUnityCommand+c_uuuu上显示Class0_0.b_uu0()[0x00000]in:0
在AltResponseQueue.Cycle()[0x00000]中:0

删除或注释此行:

来自selenium.webdriver.common.by import by

By
来自altunityrunner的定义被上面的行覆盖