找不到元素-硒

时间:2020-10-26 18:49:08

标签: python selenium

我正在尝试制作一个程序,该程序将自行生成质子电子邮件。一切都进行得很顺利,直到我不得不创建输入用户名和密码的代码。问题是:它输入密码,但输入idk为什么它对用户名不做同样的事情。我尝试放置所有我能找到的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)

这是错误:

回溯(最近通话最近一次):

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

driver.find_element_by_id(“ domain”)。send_keys(“ juzername”)

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

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

以退出代码1完成的过程

2 个答案:

答案 0 :(得分:0)

我认为您使用了错误的ID标签。您选择的是@ protonmail.com下拉列表,而不是输入标签。

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

答案 1 :(得分:0)

从日志driver.find_element_by_id("domain").send_keys("juzername")中,我们可以大致了解错误发生的位置。

请参见下面的源页面截图,我们可以获得正确的代码。

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

enter image description here

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