python - selenium 无法将键发送到输入框
问题描述
我正在尝试使用 seleinum 自动登录。我用过
- driver.execute_script
- driver.find_element_by_css_selector
- driver.find_element_by_xpath
.
from selenium import webdriver
from webdriver_manager import chrome
driver = webdriver.Chrome(chrome.ChromeDriverManager().install())
driver.get("https://naco999.com/")
driver.find_element_by_css_selector('#login_id').send_keys("id")
driver.find_element_by_css_selector("#login_pw").send_keys("pw")
但这些似乎都不起作用。我怎样才能?
解决方案
有 3 个元素匹配#login_id
css_selector。
尝试使用这个:
driver.find_element_by_css_selector(".header-one #login_id").send_keys("id")
driver.find_element_by_css_selector(".header-one #login_pw").send_keys("pw")
此外,您应该在加载元素时添加等待发送文本。
像这样:
from selenium import webdriver
from webdriver_manager import chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome(chrome.ChromeDriverManager().install())
wait = WebDriverWait(driver, 20)
driver.get("https://naco999.com/")
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".header-one #login_id"))).send_keys("id")
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".header-one #login_pw"))).send_keys("pw")
推荐阅读
- mysql - 获取一个没有通话记录的随机客户,并按他们未接听的电话数量排序
- spring - Spring WebClient Post 方法正文
- visual-c++ - 在 MSVC 2017 上使用 _addcarry_u64 时结果错误
- php - 当我在 laravel 查询上运行代码时,我变得乱码
- database - 如何在 tsql 的循环中转到下一列
- autodesk-forge - 如何在 3D 视图中查看 dwg - 客户问题
- c# - Vuforia 编辑默认脚本
- spring-boot - Spring Boot 1.5.8 与 Jakson 2.10.0 对象映射问题
- ms-access - MS Access 表单查询日期范围(甚至没有)
- node.js - Node.js、MongoDB 中的另一个异步/等待函数中的异步/等待函数