python - 在 python 中使用 Selenium 登录网站时出现错误“ElementNotInteractableException”
问题描述
我已经编写了这个脚本来登录耐克网站,selenium.common.exceptions.ElementNotInteractableException
当我尝试登录时,由于网站中的弹出消息而出现错误,我尝试了不同的方法但没有任何效果,这是我的代码:
import time
import requests
from selenium import webdriver
r = requests.get('https://www.nike.com/fr/launch?s=in-stock')
url = 'https://www.nike.com/fr/launch/t/air-max-90-pink-foam'
#accountINFO
uid = 'sss@gmail.com'
pwd = 'XXXX'
#boost browser
driver = webdriver.Chrome(executable_path = '//Users/xxxxxx/Desktop/chromedriver')
driver.get(url)
mcookis = driver.find_element_by_xpath("//button[@data-qa='accept-cookies']")
mcookis.click()
time.sleep(1)
memberLogin = driver.find_element_by_xpath("//button[@data-qa='top-nav-join-or-login-button']")
memberLogin.click()
time.sleep(1)
#Login
elem = driver.find_element_by_xpath("//input[@type='email']")
elem.send_keys(uid)
elem = driver.find_element_by_xpath("//input[@type='password']")
elem.send_keys(pwd)
login_submit = driver.find_element_by_xpath("//input[@value='CONNEXION']")
#time.sleep(1)
login_submit.click()
通常在提交运行后我应该访问该站点,但是当我手动键入 pswd 时,我收到一条错误消息,它正在工作。
解决方案
不确定我有没有你的问题。如果问题是弹出窗口,只需使用 selenium 将其关闭,单击“关闭”或“x”,然后搜索登录按钮。还要确保在搜索新元素之前等待几秒钟,例如
driver.find_element_by_xpath('//*[@id="login"]').click(), time.sleep(5)
推荐阅读
- git - Shield.io 徽章文本可在 git wiki 上搜索
- laravel - Laravel 雄辩的多层次关系
- django - 如何在 django 管理表单中设置多对多字段可选
- javascript - 在 Ajax POST Nodejs Express 上推送文件下载
- r - 如何将数据框内容中指定的颜色分配给ggplot geoms?
- javascript - 如何将对象从 Birt 报告传递到 HTML 动态文本(布局)
- python - python 3中字节数组索引的行为
- qt - QT Qapplication 在计算循环中卡在“return a.exec()”中
- javascript - 在 AJAX 调用上重新加载数据时丢失格式
- python - 使用正则表达式从文本中提取图像 url