插件
selenium对应谷歌的版本号
下载插件
下载版本号一样或者相近的
http://npm.taobao.org/mirrors/chromedriver
Xpath 定位元素
//imput[@id=”su”]
Fn+f12键
三个点。最左边键,ctrl+f
为啥要学这个,因为python无法识别html代码。
我们用的自动化测试工具式selenium,使用python语言控制
python只能识别xpath
是一种一对一对的标签组成的语言,一对标签
除了标签名以外的都是属性,多个属性中间,逗号隔开
属性唯一定位
Id >name
values
尽量不要用,用唯一定位的,因为性能更好
进入pycharm
建立文件夹automationtest
From selenium import webdriver
fromseleniumimportwebdriver
driver=webdriver.Chrome()
driver.get(‘http://www.baidu.com‘)
get方法就是双击浏览器,进入www.baidu.com
get()
quit()
xxxx_loc
find_element_by_xpath()
send_keys()
#locator是定位器的意思
sou_suo_kuang_loc=‘//input[@id=”kw”]’
sou_suo_nei_rong=‘凡猫’
driver.find_element_by_xpath(sou_suo_kuang_loc).send_keys(sou_suo_nei_rong)
#最好的写法
sou_suo_kuang=driver.find_element_by_xpath(sou_suo_kuang_loc)
sou_suo_kuang.send_keys(sou_suo_nei_rong)发送
baidu_yi_xia_loc=‘//input[@id=”su”]’
baidu_yi_xia=driver.find_element_by_xpath(baidu_yi_xia_loc)
baidu_yi_xia.click()点击
#查找百度搜索的结果号,用固定的标签名,性能会更好
xiang_guan_jie_guo_loc=‘//span[@class=”nums_text”]’
xiang_guan_jie_guo=driver.find_element_by_xpath(xiang_guan_jie_guo_loc)
print(xiang_guan_jie_guo.text)
if xiang_guan_jie_guo.text==‘百度为您找到相关结果约5,900,000’:
#
print(‘success’)
else:
print(‘false’)
#模糊查询contains=包含
#//span[contains(text(),”百度为您找到相关结果约”)]
_xsu_loc=’//a[contains(text(),”学”)]’
#
sleep(5)
driver.quit()
fromseleniumimportwebdriver
fromtimeimportsleep
jiemian=‘//img[@width=”270px”and@height=”129px”]’
driver=webdriver.Chrome()
url=‘http://www.baidu.com‘
driver.get(url)
driver.maximizewindow()#最大化浏览器
学术_loc=‘//a[contains(text(),”学”)]’#学术元素的xpath定位表达式(定位器)
学术=driver.find_element_by_xpath(学术_loc)#定位“学术”元素
学术.click()#点击“学术”元素
sleep(2)#会打开一个新窗口,等待2秒看效果
窗口标题=driver.title
print(‘当前窗口的标题:{}’.format(窗口标题))
当前窗口的句柄=driver.current_window_handle
print(‘当前窗口的句柄:{}’.format(当前窗口的句柄))
所有窗口的句柄列表=driver.windowhandles
print(‘打印出所有窗口的句柄:{}’.format(所有窗口的句柄列表))
#新窗口一般是这个列表的最后一个列表元素,
#原先只有一个句柄,下标是0,新窗口的句柄下标是1
学术窗口的句柄=所有窗口的句柄列表[1]
driver.switch_to.window(学术窗口的句柄)#根据窗口句柄,切换到指定窗口
窗口标题=driver.title
print(‘切换到新窗口后的标题:{}’.format(窗口标题))
if窗口标题==‘百度学术-保持学习的态度’:#if’学术’in窗口标题:_
print(‘学术页面被成功打开了’)
else:
print(‘学术页面打开失败了’)
sleep(3)
driver.quit()
安装selenium:pip install selenium
驱动:可以理解成类似汽车的变速箱
chrome浏览器,需要下载对应版本的selenium webdriver
xpath:表达式代码,表达定位(唯一定位)页面元素的位置(python 只能识别xpath
调试器打开,定位,拿到位置,转译为xpath代码
//标签名[@属性名='值'] 单个属性
//标签名[@属性名='值' and @属性名='值' ] 多属性唯一定位用and
//标签名[contains(text(), "模糊定位的内容") ] 通过内容模糊定位
标签名不要用
selenium.webdiver.Chrome() 使用Chrome浏览器的驱动
get() 打开浏览器,访问预期的页面
maxmize_window() 最大化窗口
find_element_by_xpath('xpath表达式') 通过xpath找到预期元素 find_element_by_xpath('xpath表达式') .text 通过xpath找到预期元素 的内容
quit() 关闭浏览器
send_key('内容') 通过键盘输入内容
click() 模仿鼠标单击
title 获取窗口标题
重点:web浏览器可能会有很多窗口,但是窗口也有唯一ID,别名“句柄” handle
current_window_handle 获取当前窗口句柄
window_handles 获取所有窗口句柄(获取出来的是列表)
switch_to.window(窗口句柄) 通过窗口句柄将webdriver的控制跳转到对应窗口
io(就是input)