在硒上未按名称/标识找到元素

时间:2019-06-18 16:48:39

标签: python selenium

我正在使用Selenium登录Mathwork帐户,但出现此错误消息“ AttributeError:'NoneType'对象没有属性'send_keys'“

以下是Mathwork登录页面的来源:

name

enter image description here

我尝试使用下面的不同代码行,但无济于事:

username = driver.find_element_by_xpath(".//*[@id='userId']")
username = driver.find_element_by_name('userId')
username = driver.find_element_by_id('userId')

这是我的完整代码:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome('C:\\Users\Dung Le\\Downloads\\Compressed\\chromedriver.exe')

driver.get('https://www.mathworks.com/login?uri=https%3A%2F%2Fwww.mathworks.com%2Fhelp%2Findex.html%3Fs_tid%3DCRUX_lftnav')
driver.implicitly_wait(60)
username = driver.find_element_by_name('userId')
username.send_keys('my_email')

password = driver.find_element_by_name('password')
time.sleep(2)
password.send_keys('my_password')

我收到此错误:

  

“ C:\ Program Files \ Python37 \ python.exe”“ C:/ Users / Dung Le / PycharmProjects / untitled7 / dsd.py”   追溯(最近一次通话):     在第11行的文件“ C:/ Users / Dung Le / PycharmProjects / untitled7 / dsd.py”       username.send_keys('leanh *** @ gmail.com')   AttributeError:“ NoneType”对象没有属性“ send_keys”

     

以退出代码1完成的过程

和此输出:

enter image description here

我希望解决此错误,并将我的登录信息保存在登录页面的输入空间中。

谢谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您应该始终检查元素是在主要内容中还是在框架中,如果元素在框架中,则必须先切换到该框架:

Dim IsValid as Boolean = YourScriptThatCheckForValidLink()
If Not IsValid Then
    Response.Write("This link has expired.")
    HttpApplication.CompleteRequest()
End If

处理完框架后,切换回默认内容

frame = driver.find_element_by_id('me')
driver.switch_to.frame(frame)
driver.find_element_by_id('userId').send_keys('blablabla')