Selenium自动化测试(二)之selenium使用和元素定位
(一)selenium的简单使用
1、导包
from selenium import webdriver
2、初始化浏览器
# 驱动在python环境中
browser = webdriver.Chrome()
# 驱动不放在python环境中,添加executable_path关键字
browser = webdriver.Chrome(executable_path=r"D:\chromedriver.exe")
3、打开网址
browser.get("http://www.baidu.com")
4、对浏览器的一些简单操作
# ------------------获取浏览器信息----------------
# 获取网址
browser.current_url
# 获取网页标题
browser.title
# 获取网页中的源码
browser.page_source
# 获取所有的窗口,所有的标签页(list类型)
browser.window_handles
# 获取现在正处于的标签页, 返回的是窗口句柄(窗口ID)
browser.current_window_handle
# ------------------浏览器动作--------------------
# 最大化窗口
browser.maximize_window()
# 最小化窗口
browser.minimize_window()
# 设置窗口的大小,参数为:长宽,单位:像素
browser.set_window_size(800, 600)
# 刷新
browser.refresh()
# 后退
browser.back()
# 前进
browser.forward()
5、关闭标签页和浏览器
# 关闭标签页
browser.close()
# 关闭浏览器
browser.quit()
(二)元素定位(百度为例)
- 在python中模拟点点点,实际上就是通过在 HTML 当中去找到需要操作的元素(标签)进行模拟操作
- find_element_by_...:返回的是一个WebElement对象,如果有多个值也只会返回第一个值
- find_elements_by_...:返回的是一个WebElement对象list列表,不管有多少个值都返回的列表(可以通过索引获取你需要的哪一个)
- send_keys("内容"):输入内容
- click():单击
- 在python中通过元素的特征进行查找元素,根据id属性查找(id具有唯一性)
注意点:
- id属性可能会是动态变化的。
- 如果id中包含数字,那么这个id属性你要小心了,很大可能是动态变化的。
- 像那种拼音单词之类的,一般情况下是不可变的id。
* ***以下用的都是:find_element_by_... ***
1、根据ID属性进行定位,查询到的是一个WebElement对象
input_element = browser.find_element_by_id("kw")
print(input_element)
# 输入内容
input_element.send_keys("Python")
2、根据name属性进行定位
element = browser.find_element_by_name("wd")
print(element)
3、根据class属性进行定位
e = browser.find_element_by_class_name("s_ipt")
print(e)
4、通过tagname(标签名称)进行定位。查找到的元素不具备唯一性
e = browser.find_element_by_tag_name("a")
print(e)
5、定位a标签超链接
e = browser.find_element_by_link_text('新闻')
# 点击链接
e.click()
6、定位a标签超链接,模糊定位
e = browser.find_element_by_partial_link_text('新')
e.click()
【完】