python - 为了使用 Python 登录网站,我应该使用哪些定位器?
问题描述
我正在尝试登录该网站。但我无法填写用户名和密码。我被困在填写用户名的步骤上。我假设我选择了错误的类名,但我不确定。我会很感激你的帮助。
我的代码:
#
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
url = "https://portal.spryngsms.com/login?redirect=%2F"
username = "cosmos"
password = "1234"
driver.get(url)
driver.find_element_by_class_name('form__input-wrapper tw-mb-16 ').send_keys(username)
解决方案
首先find_element_by_class_name()
接受单个类名,但不接受多个类名。
您需要与input
元素而不是父div
元素交互的第二件事。
而不是class name
你应该使用css selector
来标识输入元素。
对于用户名:
driver.find_element_by_css_selector(".form__input-wrapper input[type='text']").send_keys(username)
对于密码:
driver.find_element_by_css_selector(".form__input-wrapper input[type='password']").send_keys(password)
推荐阅读
- optimization - socket.io 在使用路径时是否重用连接?
- javascript - 如何在 HTML 中隐藏链接的 JavaScript 文件
- c# - 如何 XML 序列化另一个类的列表?(解决了)
- c# - DevTools V85、V91 和 V92 上 C#.net 中的 Selenium Webdriver.csproce 编译问题
- asp.net-core - 将默认表鉴别器字段添加到实体 - 鉴别器字段为空
- symfony5 - 如何修复未找到命令“encore”。尝试在 symfony 中添加 css 时?
- c# - 文本显示中的 C# 表单差异
- laravel-8 - 如何在 PHP (LARAVEL) 中更新这个 $s var?
- python - Jupyter Lab 扩展给出 500 服务器错误,它在哪里坏了?
- laravel - 没有 Node.js 的 Laravel 实时