今天开始学习selenium3的自动化测试之模拟登录,然后就发现 报错??
源代码:(网址账号密码隐藏了)
from selenium import webdriver
import time
driver = webdriver.Chrome('D:\driver\chromedriver.exe')
driver.get('https://***************/')
#time.sleep(2)
element_user = driver.find_element_by_id('username')
element_user.send_keys('*****')
element_pd = driver.find_element_by_id('password')
element_pd.send_keys('*******')
element_search_button = driver.find_element_by_css_selector("[class = 'lock sign-in btn btn-primary btn-large btn-login']").click()
time.sleep(2)
#ret = driver.find_element_by_id('1')
#print(ret.text)
报错信息:
Traceback (most recent call last):
File "D:/selenium/se1.py", line 8, in <module>
element_user.send_keys('admin')
File "D:\Anaconda\lib\site-packages\selenium\webdriver\remote\webelement.py", line 479, in send_keys
'value': keys_to_typing(value)})
File "D:\Anaconda\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "D:\Anaconda\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "D:\Anaconda\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: element not visible
(Session info: chrome=65.0.3325.181)
(Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 10.0.17763 x86_64)
报错信息中没有说元素定位错误,所以源代码应该是没有什么错误,可能是首次使用selenium并不了解的基础问题,然后就去百度,看到了https://q.cnblogs.com/q/100724/,和我的问题一模一样啊,看到下边说在加载浏览器后加一个time.sleep,然后就试了一下,完美解决
原因:应该是因为网页还没有完全加载好,需要一个等待时间去加载网页,但是看到有人说不建议使用time.sleep,这里可以自行百度selenium的三种延时等待方式
(有错指出啊!!!)