勇哥注:
下面的自动化测试的python代码,使用winappDriver和selenium进行,运行后会打开计算器程序,然后进行自动点击。
如果你用的是pycharm写代码,可以很方便的选择包的版本。
如果用AI编程环境Trae.cn或者cursor的话,你得告诉它们:请在虚拟环境中安装下面说的版本。
否则他一定自由发挥,乱搞一通。
先要启动winappdriver:
winAppDriver.exe 127.0.0.1 4723
# - Python v2.7或更高版本(勇哥用的是3.13) # —使用Python包管理器(PIP)安装以下依赖项 # - Appium-Python-Client(1.2.0) # selenium(版本3.5.0) # - setuptools(版本28.8.0) import unittest from appium import webdriver class SimpleCalculatorTests(unittest.TestCase): @classmethod def setUpClass(self): #set up appium desired_caps = {} desired_caps["app"] = "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" self.driver = webdriver.Remote( command_executor='http://127.0.0.1:4723', desired_capabilities= desired_caps) @classmethod def tearDownClass(self): self.driver.quit() def getresults(self): displaytext = self.driver.find_element_by_accessibility_id("CalculatorResults").text # displaytext = displaytext.strip("Display is " ) displaytext = displaytext.strip("显示为 ") displaytext = displaytext.rstrip(' ') displaytext = displaytext.lstrip(' ') return displaytext def test_initialize(self): self.driver.find_element_by_name("清除").click() self.driver.find_element_by_name("七").click() self.assertEqual(self.getresults(),"7") self.driver.find_element_by_name("清除").click() def test_addition(self): self.driver.find_element_by_name("一").click() self.driver.find_element_by_name("加").click() self.driver.find_element_by_name("七").click() self.driver.find_element_by_name("等于").click() self.assertEqual(self.getresults(),"8") def test_combination(self): self.driver.find_element_by_name("七").click() self.driver.find_element_by_name("Multiply by").click() self.driver.find_element_by_name("九").click() self.driver.find_element_by_name("加").click() self.driver.find_element_by_name("一").click() self.driver.find_element_by_name("等于").click() self.driver.find_element_by_name("除以").click() self.driver.find_element_by_name("八").click() self.driver.find_element_by_name("等于").click() self.assertEqual(self.getresults(),"8") def test_division(self): self.driver.find_element_by_name("八").click() self.driver.find_element_by_name("乘以").click() self.driver.find_element_by_name("除以").click() self.driver.find_element_by_name("一").click() self.driver.find_element_by_name("一").click() self.driver.find_element_by_name("等于").click() self.assertEqual(self.getresults(),"8") def test_multiplication(self): self.driver.find_element_by_name("九").click() self.driver.find_element_by_name("乘以").click() self.driver.find_element_by_name("九").click() self.driver.find_element_by_name("等于").click() self.assertEqual(self.getresults(),"81") def test_subtraction(self): self.driver.find_element_by_name("九").click() self.driver.find_element_by_name("减").click() self.driver.find_element_by_name("一").click() self.driver.find_element_by_name("等于").click() self.assertEqual(self.getresults(),"8") if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromTestCase(SimpleCalculatorTests) unittest.TextTestRunner(verbosity=2).run(suite)
运行后,会自动点击ui上的按钮,依据UI的元素。
winAppDriver窗口中会回显脚本执行结果。
如果你使用AI编辑器跑上面程序,则它对于包的版本完全没有概念,这会不停的修正运行错误,直到天荒地老也解决不了问题。
关键原因其实就是必须用上面说的包版本。
运行前把你的python解释器变成在虚拟环境中执行。
不然你得弄个切换到虚拟环境中的bat,就比较麻烦了。

