我正在使用Selenium登录Mathwork帐户,但出现此错误消息“ AttributeError:'NoneType'对象没有属性'send_keys'“
以下是Mathwork登录页面的来源:
和
我尝试使用下面的不同代码行,但无济于事:
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完成的过程
和此输出:
我希望解决此错误,并将我的登录信息保存在登录页面的输入空间中。
谢谢您的帮助!
答案 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')