python - Selenium - 如何填充值并单击按钮
问题描述
我今天从 selenium 开始,我在查找这些元素并在第一个元素中填充一个值并单击第二个元素时遇到了问题。
<input class="inputDefault-_djjkz input-cIJ7To" name="username" type="text" placeholder="Che nome vuoi usare?" maxlength="999" value="">
<input class="inputDefault-3JxKJ2 input-3ITkQf" type="checkbox" style="width: 24px; height: 24px;">
这是我的代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# Content to fill - <input class="inputDefault-_djjkz input-cIJ7To" name="username" type="text" placeholder="Che nome vuoi usare?" maxlength="999" value="">
# {"method":"css selector","selector":"[name="Che nome vuoi usare?"]"}
# Checkbox - <input class="inputDefault-3JxKJ2 input-3ITkQf" type="checkbox" style="width: 24px; height: 24px;">
driver = webdriver.Chrome()
driver.get("https://discord.gg/NGvXRfrmUE")
name = driver.find_element_by_class_name("inputDefault-_djjkz input-cIJ7To").send_keys("Test")
button = driver.find_element_by_class_name("inputDefault-3JxKJ2 input-3ITkQf").click
我第一次得到这个例外
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".inputDefault-_djjkz input-cIJ7To"}
这是第二个
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".inputDefault-3JxKJ2 input-3ITkQf"}
解决方案
由于name
可用,您应该使用name attribute
.
driver.find_element_by_name('username').send_keys("Test")
我可以在最后看到这个 HTML:
<input class="inputDefault-_djjkz input-cIJ7To inputField-4g7rSQ" name="email" type="text" placeholder="" aria-label="Email or Phone Number" autocomplete="off" maxlength="999" spellcheck="false" value="">
所以这里name
是email
,所以应该尝试:
driver.find_element_by_name('email').send_keys("Test")
更新 1:
driver.get("https://discord.com/invite/NGvXRfrmUE")
driver.maximize_window()
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.NAME, "username"))).send_keys('Test')
进口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
推荐阅读
- php - 有谁知道这段代码在哪里引发错误?
- ruby-on-rails - Sidekiq-scheduler - 为什么每天的 cron 工作会跳过几天?
- python - flask_SQLAlchemy 和蓝图
- c# - 将相机移动到游戏对象的前方位置
- reactjs - 由于 TypeError,salesor-frontend 产品页面未加载
- python - 如何在 Python 中有效地将超过一百万行写入文本文件
- youtube-data-api - YouTube API 搜索中缺少结果
- node.js - 为什么在将 async/await 与 MERN 堆栈一起使用时未执行等待部分
- php - 从 PHP 5.6 升级到 7.3,$_COOKIE['myusername'] 不起作用
- java - AlarmManager Dont Work 无法放置清单部分