在Webdriver的很多使用场景下,需要去判断页面上是否出现某个元素,例如提交登录后判断是否有错误信息。此时有两种情况:1.登录失败,有错误信息;2.登录成功,无错误信息。在第一种情况下,通过webdriver的find系列方法肯定能获取到错误信息,但是在第二种情况下,让webdriver去查找一个不存在的页面元素就会出现问题。
def get_chrome_browser():
service_log_path = CHROME_TEMP_PATH + str(long(time.time() * 1000))
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--user-data-dir=' + service_log_path)
browser = webdriver.Chrome(CHROME_DRIVER_PATH, chrome_options=chrome_options)
# 设置隐式等待时间
browser.implicitly_wait(30)
# 设置页面加载超时时间
browser.set_page_load_timeout(30)
# 设置脚本超时时间
browser.set_script_timeout(30)
browser.maximize_window()
return browser
if __name__ == '__main__':
browser = get_chrome_browser()
browser.get('https://www.baidu.com/')
print browser.find_element_by_id('su').get_attribute('value')
browser.find_element_by_class_name('login-bt2')
使用ChromeDriver作为测试用的浏览器驱动,打开百度搜索的首页,通过webdriver查找到“百度一下”这个按钮,再查找一个不存在的class name。
百度一下
Traceback (most recent call last):
File "E:/work/crawler/crawler/data/bank_ceb/html_test/test.py", line 197, in &l