Python Selenium向文本输入框发送文本的正确实现方式是什么?
问题解答
你提供的代码存在的问题
By.name用法错误:Selenium 的By类定位器为全大写常量属性,不需要括号调用,正确写法是By.NAME;且find_element需要接收两个参数,第一个是定位方式,第二个是定位值,正确传参格式为find_element(By.NAME, "mobile")sendkeys拼写错误:正确方法名为驼峰格式send_keys- 逻辑错误:
send_keys()方法无返回值,你将该方法的调用结果赋值给mobile变量后,mobile的值为None,后续执行mobile.click()会直接抛出属性不存在的异常
向文本输入框发送文本的正确写法
常规写法(建议使用,方便后续对该元素进行其他操作)
# 第一步:定位目标输入框元素,赋值给变量 mobile_input = browser.find_element(By.NAME, "mobile") # 第二步:点击激活输入框(部分有交互限制的输入框需要该步骤,否则输入会失效) mobile_input.click() # 第三步:发送目标文本 mobile_input.send_keys("0000000000")
简化写法(仅需要单次输入无需后续操作时使用)
browser.find_element(By.NAME, "mobile").send_keys("0000000000")
补充说明:如果运行时出现元素找不到的报错,可先添加显式等待逻辑,确保页面元素加载完成后再执行操作,避免因渲染延迟导致的异常
内容的提问来源于stack exchange,提问作者Ayush Kumar
相关产品推荐
相关产品推荐

