昨天学了些webdriver的基础用法及element对象的方法
找两个网页(豆瓣和百度)进行下练习和理解。
webdriver的方法
常规方法:
back #浏览器后退
close #关闭tab页,不关闭driver.exe
quit#退出浏览器,关闭driver.exe
current_url#当前的url地址
execute_script#执行js脚本
forward#前进
fullscreen_window#全屏
get#打开指定url
get_window_rect#得到窗口的矩形
get_window_position#得到窗口的位置
get_window_size#得到窗口的大小
maximize_window#最大化窗口
minimize_window#最小化窗口
name#浏览器名字
page_source#页面源代码
refresh#刷新页面
save_screenshot#保存界面截图,建议为png格式
set_window_pisition#设置窗口位置
set_window_rect#设置窗口矩形
set_window_size#设置窗口大小
title#浏览器当前页的标题
我们来试下常用的方法
- 代码演示:
from time import sleep
from selenium import webdriver
driver = webdriver.Chrome()
#打开豆瓣电影
driver.get('https://movie.douban.com/')
#点击排行榜按钮,进入排行榜页面
driver.find_element_by_xpath('//*[@id="db-nav-movie"]//a[text()="排行榜"]').click()
#查看当前页面的标题
print('点击排行榜后的页面标题为:'+driver.title)
sleep(2)
#返回豆瓣电影页
driver.back()
sleep(2)
#查看当前页面的标题
print('返回后的页面标题为:'+driver.title)
sleep(2)
#设置窗口大小
driver.set_window_size(800,200)
sleep(2)
#打印窗口大小
print('设置完后的窗口大小为:'+str(driver.get_window_size()))
sleep(2)
#打印窗口的矩形
print('当前的窗口矩形为:'+str(driver.get_window_rect()))
sleep(2)
#打印当前的url
print('当前页面url为:'+str(driver.current_url))
sleep(2)
#打印浏览器名称
print('浏览器名称为:'+str(driver.name))
sleep(2)
now_html = driver.page_source#获取当前页面源代码
with open(r'./htm1.html','w+',encoding='utf-8') as fi:
fi.write(now_html)#把当前页面源代码写入到文件
#退出浏览器
driver.quit()
查看控制台输出:
点击排行榜后的页面标题为:豆瓣电影排行榜
返回后的页面标题为:豆瓣电影
设置完后的窗口大小为:{'width': 800, 'height': 200}
当前的窗口矩形为:{'height': 200, 'width': 800, 'x': 10, 'y': 10}
当前页面url为:https://movie.douban.com/
浏览器名称为:chrome
我们保存在本地的网页源代码
保存在本地的网页截图
webelement对象方法
常用方法
clear#清空元素上的内容
click#点击元素
find_element#在元素上找元素
get_attribute#获得属性
is_display#是否显示
is_enable#是否使能
is_selected#是否选择
location#位置
rect#矩形
screenshot_as_png#元素存为png图片,bytes类型,可用于验证码
send_keys#输入信息(追加)
size#大小
submit#提交
tag_name#标签名
text#文本
location_once_scrolled_into_view#滚动到可见
value_of_css_property#css属性的值
- 实例展示
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
sleep(2)
#先找到搜索栏#再在搜索栏元素上找另外一个元素(小相机按钮)并点击
driver.find_element_by_css_selector('.bg.s_ipt_wr.new-pmd.quickdelete-wrap').find_element_by_css_selector('.soutu-btn').click()
sleep(2)
#点击X按钮
driver.find_element_by_css_selector('a.soutu-close.c-icon.soutu-close-new').click()
#在百度搜索栏输入内容
sleep(1)
driver.find_element_by_css_selector('#kw').send_keys('自动化测试研习社')
sleep(1)
#点击确定按钮
driver.find_element_by_css_selector('#su').click()
sleep(1)
#找到‘下一页’按钮
ele = driver.find_element_by_css_selector('#page > div > a.n')
sleep(1)
#滑动到页面最底部,使‘下一页按钮’可见
ele.location_once_scrolled_into_view
sleep(1)
#返回上一页面
driver.back()
sleep(1)
driver.find_element_by_css_selector('#kw').send_keys('自动化测试研习社')
#清空输入框内容
sleep(1)
driver.find_element_by_css_selector('#kw').clear()
sleep(1)
size = driver.find_element_by_css_selector('#su').size
#查看‘百度一下’按钮大小
print('"百度一下"按钮的大小为:'+str(size))
tag_name=driver.find_element_by_css_selector('#su').tag_name
#查看‘百度一下’按钮的标签名
print('"百度一下"按钮的标签名为:'+str(tag_name))
#打印网页上的文字‘请按“回车”键发起检索’
print(driver.find_element_by_css_selector('#ent_sug').text)
driver.set_window_size(500,500)
在网页上要找的文本:
查看控制台输出:
"百度一下"按钮的大小为:{'height': 40, 'width': 112}
"百度一下"按钮的标签名为:input
请按“回车”键发起检索
整体流程也符合我们预期。
有些用法没有用到,之后文章的实际场景中用到再做介绍。
- 下篇预告:webdriver高级用法