Python selenium.common.exceptions.NoSuchElementException:没有这样的元素:找不到元素我尝试了这个驱动程序。隐式地等待(20),但不工作
我有这个问题 我试过这个Python selenium.common.exceptions.NoSuchElementException:没有这样的元素:找不到元素我尝试了这个驱动程序。隐式地等待(20),但不工作,python,selenium-webdriver,Python,Selenium Webdriver,我有这个问题 我试过这个 driver.implicitly_wait(20) 但不起作用,同样的问题 这在网站加载后显示 我无法访问表单 这是表单链接 这是一个简单的代码 from selenium import webdriver URL = 'https://accounts.esri.com/en/login' userName = 'test' passWord = 'test' driver = webdriver.Chrome()
driver.implicitly_wait(20)
但不起作用,同样的问题
这在网站加载后显示
我无法访问表单
这是表单链接
这是一个简单的代码
from selenium import webdriver
URL = 'https://accounts.esri.com/en/login'
userName = 'test'
passWord = 'test'
driver = webdriver.Chrome()
driver.get(URL)
time.sleep(10)
passWordInput = driver.find_element_by_css_selector('#user_username')
passWordInput.send_keys(userName)
passWordInput = driver.find_element_by_css_selector('#user_password')
passWordInput.send_keys(passWord)
buttonSignIn = driver.find_element_by_css_selector('#signIn')
buttonSignIn.click()
time.sleep(5)
此表单位于
内,对于浏览器,它是不同的页面,因此无法找到它。您必须使用切换到.frame
更改帧,然后才能在此帧中搜索
from selenium import webdriver
import time
URL = 'https://accounts.esri.com/en/login'
userName = 'test'
passWord = 'test'
driver = webdriver.Chrome()
#driver = webdriver.Firefox()
driver.get(URL)
time.sleep(10)
f = driver.find_element_by_tag_name('iframe')
driver.switch_to.frame(f)
passWordInput = driver.find_element_by_css_selector('#user_username')
passWordInput.send_keys(userName)
passWordInput = driver.find_element_by_css_selector('#user_password')
passWordInput.send_keys(passWord)
buttonSignIn = driver.find_element_by_css_selector('#signIn')
buttonSignIn.click()
time.sleep(5)
睡觉从来都不是一个好习惯。而是使用
EC.frame\u to\u be\u available\u和\u switch\u to\u it()
等待帧,然后在可用时切换到它。更多信息,请参见。@JeffC对OP说-我只得到了它的代码,并添加了解决主要问题所需的代码:)我只能放这段代码,没有rest行。我要对你们两个说…:)。当我回答一个问题时,我不仅要回答这个问题,而且要在看到可以改进时提供建议。不纠正坏习惯是没有好处的,使用睡眠是一种普遍的坏习惯。
from selenium import webdriver
import time
URL = 'https://accounts.esri.com/en/login'
userName = 'test'
passWord = 'test'
driver = webdriver.Chrome()
#driver = webdriver.Firefox()
driver.get(URL)
time.sleep(10)
f = driver.find_element_by_tag_name('iframe')
driver.switch_to.frame(f)
passWordInput = driver.find_element_by_css_selector('#user_username')
passWordInput.send_keys(userName)
passWordInput = driver.find_element_by_css_selector('#user_password')
passWordInput.send_keys(passWord)
buttonSignIn = driver.find_element_by_css_selector('#signIn')
buttonSignIn.click()
time.sleep(5)