Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
一、浏览器操作
功能 | 函数 |
---|---|
1.启动浏览器(生成一个浏览器对象 ) | driver=webdriver.chrome() |
2.输入网址 | driver.get(‘www.baidu.com’) |
3.前进 | driver.foward() |
4.回退 | driver.back() |
5.刷新 | driver.refresh() |
6.查看网页标题 | print(‘driver.title’) |
7.查看网页句柄 | print(‘driver.current_window_handle’)-----当前的句柄,print(‘driver.window_handles’)----打开 的所有 页面的句柄 |
8.浏览器尺寸 | print(‘driver.window_size’) |
9.当前截图 | driver.get_screeshot_as_file(‘c:\11.png’)#存储的位子,图片名称 |
10.关闭浏览器 | driver.close() |
退出浏览器 | driver.quit() |
11.最大化 | driver.maxmise() |
12.最小化 | driver.minimise() |
二、元素定位
定位方式 | 说明 | 语法 |
---|---|---|
id | 通过id定位 | find_element_by_id/find_element(‘id’,‘id名’) |
name | 通过name定位 | find_elements_by_name 返回所有匹配到的元素列表,find_element_by_name只返回匹配到的一个元素 |
class_name | 通过classname定位 | find_element_by_class_name |
tag_name | 通过标签定位 | find_element_by_tag_name 只返回匹配到的一个元素 ,find_elements_by_tag_name 返回所有匹配到的元素列表 |
link_text | 通过超链接文件定位 | find_element_by_link_text |
paptial_link_text | 通过部分超链接文字定位 | find_element_by_partical_link_text |
xpath | 通过xpath定位 | find_element_by_xpath |
css_selector | 通过css_selector定位 | find_element_by_css_selector 只返回匹配到的一个元素 ,find_elements_by_css_selector 返回所有匹配到的元素列表 |
在实际应用中可以通过By方法来调用定位元素
from selenium import webdriver
from selenium.webdriver.common.by import By
driver.find_element(By.ID,'ID名')
三、元素操作
1.基本元素操作
函数 | 功能 |
---|---|
1. clear | 清除对象的内容 |
2. send_keys | 在对象上模拟按键输入,注意如果是函数需要增加转义符 (输入) |
3. click | 单击对象,强调对象的独立性(左键点击) |
4. submit | 提交表单,要求对象必须是表单,强调对象必须是表单 |
2.下拉菜单列表
此时使用的是Select模块
定位列表
函数 | 功能 |
---|---|
select_by_index(self, index) | 以index属性值来查找匹配的元素并选择; |
select_by_value(self, value) | 以value属性值来查找该option并选择; |
select_by_visible_text(self, text) | 以text文本值来查找匹配的元素并选择; |
first_selected_option(self) | 选择第一个option 选项 ; |
3.frame嵌套页面
1)切入frame
switch_to.frame(reference)
reference是传入的参数,用来定位frame,可以传入id、name、index以及selenium的WebElement对象;
- 1.用frame的index来定位,第一个是0
driver.switch_to.frame(0) 选择第一个- 2.用id来定位
driver.switch_to.frame(‘frame-id’)- 3.用name来定位
driver.switch_to.frame(‘frame-name’)- 4.用WebElement对象来定位(
#没有合适的 id,name 属性可通过 find_element() 找到 iframe 元素再跳转#
iframe = driver.find_element_by_xpath(’//*[id=“login”]/iframe’)
driver.switch_to.frame(iframe)
2)selenium 从子frame切回到父frame,类似于后退;
driver.switch_to.parent_frame()
四、键鼠操作
1.鼠标操作
- double_click 双击操作
- context_click 右键操作
- drag_and_drop 拖拽操作。左键按住拖动某一个元素到另外一个区域,然后释放
- move_to_element() 鼠标悬停。
2.键盘操作
键盘全选操作 Ctrl+A driver.find_element_by_css_selector(“#kw”).send_keys(Keys.CONTROL,‘a’)
键盘选择复制操作 Ctrl+C driver.find_element_by_css_selector(“#kw”).send_keys(Keys.CONTROL,‘c’)
键盘选择剪切 Ctrl+X driver.find_element_by_css_selector(“#kw”).send_keys(Keys.CONTROL,‘x’)
粘贴复制内容 Ctrl+V driver.find_element_by_css_selector(“.secinput”).send_keys(Keys.CONTROL,‘v’)