Appium使用set_text向搜索框里输入内容失败

写一个闲鱼爬虫,开了Appium和Android雷电模拟器

想要往搜索框内输入文本,但是set_text会报错,无法输入。

报错信息为 “Cannot set the element to '在这里填入文本'. Did you interact with the correct element?”

求帮忙!谢谢!

代码如下:


# 导入webdriver
from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化参数
desired_caps = {
    "platformName": "Android",  # 被测手机是安卓
    "platformVersion": "7.1.2",  # 手机安卓版本
    "deviceName": "emulator-5554",  # 设备名,安卓手机可以随意填写
    "appPackage": "com.taobao.idlefish",  # 启动APP Package名称
    "appActivity": "com.taobao.fleamarket.home.activity.MainActivity",  # 启动Activity名称
    "noReset": True,  # 不要重置App,如果为False的话,执行完脚本后,app的数据会清空,比如你原本登录了,执行完脚本后就退出登录了
}

# 连接Appium Server
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
wait = WebDriverWait(driver, 60)
# 选择搜索框
search_entry = wait.until(EC.presence_of_element_located((By.ID, "com.taobao.idlefish:id/search_bar_layout")))
search_entry.click()
# 输入待搜索内容
search_name = wait.until(EC.presence_of_element_located((By.CLASS_NAME, "android.widget.EditText")))
search_name.click()
search_name.set_text("在这里填入文本")  # 似乎此处不能使用set_text,待处理
# 进行搜索
search_button = wait.until(EC.presence_of_element_located((By.XPATH, "//*[@text='搜索']")))
search_button.click()

wait.until(EC.presence_of_element_located((By.CLASS_NAME, "android.widget.ScrollView")))

while True:
    driver.swipe(500, 1900, 500, 300, 300)
    items = wait.until(EC.presence_of_all_elements_located((By.XPATH, "//*[@class='android.widget.ScrollView']/android.view.View")))
    for item in items:
        print(item)