繁体   English   中英

无法定位元素 - 硒

[英]Unable to locate element - selenium

我正在尝试制作一个可以自行制作质子电子邮件的程序。 一切都很顺利,直到我不得不创建输入用户名和密码的代码。 问题是:它输入密码,但不知道为什么它不使用用户名做同样的事情。 我试着把我能找到的每一个 id 都放进去,但它仍然没有用。(我也尝试用类或名称做一些事情,但我失败了)。

这是我的代码:

from selenium import webdriver
import time

url = "https://protonmail.com/"
driver = webdriver.Chrome(r'C:\Users\Puhar\Desktop\chromedriver')
driver.get(url)
driver.find_element_by_xpath('//*[@href="signup"]').click()
time.sleep(2)
driver.find_element_by_class_name("panel-heading").click()
time.sleep(2)
driver.find_element_by_id("freePlan").click()
time.sleep(6)
driver.find_element_by_id("domain").send_keys("juzername")
time.sleep(1.5)
driver.find_element_by_id("passwordc").send_keys("usernameForUser")
time.sleep(3.5)
driver.find_element_by_id("password").send_keys('usernameForUser')
time.sleep(1.5)

这是错误:

回溯(最近一次调用最后一次):

文件“C:\\Users\\Puhar\\Desktop\\mejlhekler\\mejlhekler1.py”,第 20 行,在

driver.find_element_by_id("domain").send_keys("juzername")

文件“C:\\Users\\Puhar\\AppData\\Roaming\\Python\\Python39\\site-packages\\selenium\\webdriver\\remote\\webdriver.py”,第 360 行,在 find_element_by_id

返回 self.find_element(by=By.ID, value=id_)

进程以退出代码 1 结束

我认为您使用了错误的 id 标签。 您选择的是 @protonmail.com 下拉菜单而不是输入标签。

driver.find_element_by_id("username").send_keys("juzername")

从日志driver.find_element_by_id("domain").send_keys("juzername") ,我们可以大致知道错误发生在哪里。

看下面的源页面截图,我们可以得到正确的代码。

driver.find_element_by_id("username").send_keys("juzername")

在此处输入图片说明

顺便说一句, //*[@href="signup"] , "panel-heading"不是定位您需要的元素的好主意,因为它们中的每一个都会找到许多元素。 我认为学习更多 xpath 或 cssSelector 会对你有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM