1.selenium的环境搭建
(1)selenium安装成功
(2)查看chrome浏览器的版本
(3)淘宝源下载webdriver驱动程序包(下载跟浏览器版本相同的webdriver)
(4)下载的webdriver放在python的安装目录下
2、元素定位的8个方式,以及多个元素定位方式(tag_name),最好有截图,有案例,结合百度搜索
(1)通过ID来定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys("猪猪崽")
t.sleep(6)
(2)通过name来定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_name('wd').send_keys("猪猪崽")
t.sleep(6)
(3)通过class_name来定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_class_name('s_ipt').send_keys("猪猪崽")
t.sleep(6)
(4)xpath的定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("猪猪崽")
t.sleep(6)
(5)css的定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_css_selector('#kw').send_keys("猪猪崽")
t.sleep(6)
(6)LINK_TEXT的定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_link_text('地图').click()
t.sleep(6)
(7)PARTIAL_LINK_TEXT的定位'''
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_partial_link_text("地图").click()
t.sleep(6)
(8)tag_name(演示多个元素的定位方式)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
tag=driver.find_elements_by_tag_name('input')
tag[7].send_keys("我爱中国")
t.sleep(6)
driver.quit()
3.元素定位方法的案例实战
(1)sina邮箱
登录界面:
driver=webdriver.Chrome()
driver.get('https://mail.sina.com.cn/')
#输入邮箱
driver.find_element_by_id('freename').send_keys('liuxun@163.com')
t.sleep(6)
#输入密码
driver.find_element_by_id('freepasword').send_keys('liuxun')
t.sleep(6)
注册界面:
driver=webdriver.Chrome()
#浏览器最大化
driver.maximize_window()
driver.get('https://mail.sina.com.cn/register/regmail.php')
#邮箱地址
driver.find_element_by_name('email').send_keys('liuxun@0223')
t.sleep(2)
#邮箱密码
driver.find_element_by_name('psw').send_keys('liuxun')
t.sleep(2)
#确认密码
driver.find_element_by_name('npsw').send_keys('liuxun')
t.sleep(2)
#手机号码
driver.find_element_by_name('phonenumber').send_keys('15591867378')
t.sleep(7)
driver.quit()
(2)网易
登录界面:
driver=webdriver.Chrome()
driver.get('https://mail.163.com/')
#输入邮箱账号或手机密码
driver.find_element_by_id('auto-id-1628499135847').send_keys('liuxun0223@163.com')
t.sleep(6)
#输入密码
driver.find_element_by_id('auto-id-1628499135830').send_keys('liuxun')
t.sleep(6)
注册界面:
driver=webdriver.Chrome()
#浏览器最大化
driver.maximize_window()
driver.get('https://mail.163.com/register/index.htm?from=163mail&utm_source=163mail')
#邮箱地址
driver.find_element_by_class_name('username').send_keys('liuxun0223')
t.sleep(2)
#邮箱密码
driver.find_element_by_class_name('password').send_keys('liuxun0617')
t.sleep(2)
t.sleep(2)
#手机号码
driver.find_element_by_class_name('phone').send_keys('15591867378')
t.sleep(7)
driver.quit()
4.结合函数对元素定位方法封装
(1)通过ID来封装
def ID(driver,content):
'''
:param driver: webdriver实例化后的对象
:param content: 被定位的元素属性信息
:return:
'''
return driver.find_element_by_id(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
ID(driver,'kw').send_keys('珍珠崽子')
t.sleep(3)
driver.quit()
(2)通过name来封装
def name(driver,content):
return driver.find_element_by_name(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
name(driver,'wd').send_keys('珍珠崽子')
t.sleep(3)
driver.quit()
(3)通过className来封装
def className(driver,content):
return driver.find_element_by_class_name(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
className(driver,'s_ipt').send_keys('珍珠崽子')
t.sleep(3)
driver.quit()
(4)通过tagName来封装
def tagName(driver,content,index):
return driver.find_elements_by_tag_name(content)[index]
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
tagName(driver,'input',7).send_keys('tags name')
t.sleep(3)
driver.quit()
(5)通过xpath来封装
def xpath(driver,content):
return driver.find_element_by_xpath(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
xpath(driver,'//*[@id="kw"]').send_keys('珍珠崽子')
t.sleep(3)
driver.quit()
(6)通过css来封装
def css(driver,content):
return driver.find_element_by_css_selector(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
css(driver,'#kw').send_keys('珍珠崽子')
t.sleep(3)
driver.quit()
(7)通过linkText来封装
def linkText(driver,content):
return driver.find_element_by_link_text(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
linkText(driver,'地图').click()
t.sleep(3)
driver.quit()
(8)通过partialLinkText来封装
def partialLinkText(driver,content):
return driver.find_element_by_partial_link_text(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
partialLinkText(driver,'地图').click()
t.sleep(3)
driver.quit()
5.webdriver的浏览器属性的方法应用
(1)send_keys(value):模拟按键输入
(2)click():单击元素
(3)maximize_window():浏览器窗口最大化
(4)back():模拟后退按钮
(5)forward():模拟前进按钮
(6)driver quit():关闭浏览器并且退出驱动程序
(7)driver close():关闭浏览器
(8)driver=webdriver.chrome():选择要使用的浏览器
(9)driver.current_url:获取当前页面的Url地址
(10)driver page_source:获取当前页面的源码