如何在Webdriver上修复NoSuchElementException

时间:2019-10-18 09:14:29

标签: python selenium webdriver

我尝试使用python自动登录Wifi门户。但是,find_element_by_X给出了错误。

我正在使用Chrome浏览器。

from selenium import webdriver
import time
driver = webdriver.Chrome()



driver.get('https://hinet.hiroshima-u.ac.jp/loginweb.html')
time.sleep(2)
#driver.find_element_by_css_selector('a.button').click()

username = driver.find_element_by_css_selector("input")
username.clear
#Enter HiroshimaU ID
username.send_keys('input_username')

password = driver.find_element_by_name('pwd')
password.clear
password.send_keys('input_userpassword')

此代码应该可以工作,但是只会给我错误:

  

selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“方法”:“ css选择器”,“选择器”:“输入”}

我尝试了其他方法,例如by_nameby_id。但是它们都不起作用。

我是一个初学者,所以我的问题可能不清楚,但感谢您的帮助。

编辑(2019年10月23日): 抱歉,您无法访问门户网站。 我希望此屏幕截图可能有所帮助。 Portal site

2 个答案:

答案 0 :(得分:0)

Input不是有效的cssSeletor。

您需要顶部执行以下操作:

示例:

对于https://www.google.com/网站,

textFiled的cssSeletor为

input[name='q']

答案 1 :(得分:0)

首先,我无法访问您提到的网站,因为它有助于了解html的格式。

基于此,我请您看看python selenium find_element_by_name 它显示了如何按名称访问元素:

elem=browser.find_element_by_name("Email")

您可以在html中看到“电子邮件”的名称标签