python - ElementNotInteractableException:将文本发送到电子邮件字段的元素不可交互错误
问题描述
设置
尝试使用 Python 和 Selenium登录此登录表单。
代码
url = 'https://activeshop.com.pl/customer/account/login/'
browser.get(url)
# fill out login details
account_name = 'my@email.com'
password = 'mypassword'
login_details = {
'login': account_name,
'password': password
}
# inserts account name in login field
fill_field('id','email',login_details['login'])
# inserts password in password field
fill_field('id','pass',login_details['password'])
在哪里,
def fill_field(type, type_path, input):
if type == 'id':
field = browser.find_element_by_id(type_path)
field.clear()
field.send_keys(input)
问题
上面的代码曾经可以工作,但是由于该站点已经进行了改造,因此ElementNotInteractableException: element not interactable
在尝试填写字段时会产生一个。
我试过了Xpaths
,CSS
选择器等等,但没有填写电子邮件地址和密码。
我可以通过 Selenium 获取页面上的文本。
input
元素处有一些东西阻挡了硒。有任何想法吗?
解决方案
页面上有超过 1 个email
,第一个不可见。您可以获取所有元素,然后过滤可见的元素:
field = list(filter(lambda x: x.is_displayed(), browser.find_elements(By.ID, "email")))[0]
field.send_keys("email")
推荐阅读
- reactjs - 无法读取 API 调用中未定义的属性“状态”
- hadoop - Hive 无法将数据文件 (txt) 从本地系统移动到仓库(已授予所有权限)
- reactjs - SwiperCore:如何动态导入?
- design-patterns - 微服务可以通过像 RabitMQ 这样的队列系统向自己发送异步消息吗?
- android - Camera2基本示例的内存泄漏
- nuxt.js - 将电容器 3 与 Nuxtjs SSR 一起使用
- android - 将图像从 Firefox 应用程序共享到我的应用程序时出现权限被拒绝异常
- database - 微服务中的数据库表并发问题
- c - 编程 C - 调试数字字符串转换问题
- windows - VS 无法识别 Windows 上的终端 shell 路径