Appium代码报错TypeError: 'str' object is not callable求助
解决Appium中
TypeError: 'str' object is not callable错误 错误原因
触发该错误的直接原因是错误将AppiumBy.CLASS_NAME当作方法调用。AppiumBy.CLASS_NAME是一个字符串常量(值为"class name"),并非可调用函数,你用AppiumBy.CLASS_NAME('android.widget.TextView')的写法,相当于把字符串当成函数执行,自然会抛出str object is not callable的错误。
另外代码还有一个基础语法错误:函数定义def invoke android(self):的函数名包含空格,不符合Python语法规范,会直接导致代码无法运行。
修正方案
- 调整元素定位写法:
find_elements方法需要传入两个参数——定位策略和定位值,正确写法是把AppiumBy.CLASS_NAME作为第一个参数,定位值作为第二个参数传入。 - 修正函数命名:将带空格的函数名改为合法名称,比如
invoke_android。
完整修正后的代码
def invoke_android(self): caps = { "platformName": "Android", "platformVersion": "11.0", "deviceName": "Pixel 5 Emulator", "appPackage": "com.android.settings", "appActivity": "com.android.settings.Settings" } driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps) time.sleep(3) # 修正定位方式 links = driver.find_elements(AppiumBy.CLASS_NAME, 'android.widget.TextView') for link in links: print(link.text) if link.text == "Network & internet": link.click() time.sleep(4) driver.quit()
补充说明
如果你的代码导入的是selenium.webdriver.common.by.By而非AppiumBy,写法逻辑完全一致:driver.find_elements(By.CLASS_NAME, 'android.widget.TextView'),效果相同。
内容的提问来源于stack exchange,提问作者Ramesh
相关产品推荐
相关产品推荐

