selenium 常见元素/控件操作

random
random
订阅者
10532
文章
0
粉丝
测试交流5183字数 953阅读3分10秒阅读模式

整合同事的分享

一、元素属性及元素操作方法

1、text 获取元素的文本; 如:driver.text
2、size 获取元素的大小: 如:driver.size
3、get_attribute 获取元素属性值;如:driver.get_attribute("id") ,传递的参数是元素的属性名
4、is_displayed 判断元素是否可见 如:element.is_displayed()
5、is_enabled 判断元素是否可用 如:element.is_enabled()
6、is_selected 判断元素是否被选中 如:element.is_selected()
7、.send_keys() # 输入方法
8、.click() # 点击方法
9、.clear() # 清空方法文章源自玩技e族-https://www.playezu.com/297955.html

二、浏览器操作方法

1、driver.maximize_window() # 最大化浏览器
2、driver.set_window_size(w,h) # 设置浏览器大小 单位像素
3、driver.set_window_position(x,y) # 设置浏览器位置
4、driver.back() # 后退操作
5、driver.forward() # 前进操作
6、driver.refrensh() # 刷新操作
7、driver.close() # 关闭当前主窗口(主窗口:默认启动那个界面,就是主窗口)
8、driver.quit() # 关闭 driver 对象启动的全部页面
9、driver.title # 获取当前页面 title 信息
10、driver.current_url # 获取当前页面 url 信息
11、driver.maximize_windows() # 窗口最大化
12、driver.set_window_size(w,h) # 设置浏览器大小
13、driver.set_window_position(x,y) # 设置浏览器窗口位置文章源自玩技e族-https://www.playezu.com/297955.html

三、鼠标操作(需要实例化鼠标对象)

导包:
from selenium.webdriver.common.action_chains import ActionChains
鼠标事件常用的操作 ☆
1、context_click(element) # 右击
2、double_click(element) # 双击
3、double_and_drop(source, target) # 拖拽
4、move_to_element(element) # 悬停【重点】
5、perform() # 执行以上事件的方法【重点】文章源自玩技e族-https://www.playezu.com/297955.html

# 实例化鼠标
action = ActionChains(driver)
# 鼠标拖拽
action.drag_and_drop(red, blue)
# 鼠标执行
action.perform()

四、键盘操作

1说明键盘对应的方法在Keys类中
# 导包
from selenium.webdriver.common.keys import Keys
# 单键
element.send_keys(Keys.XXX)
# 组合键
element.send_keys(Keys.XXX, 'a') # 注意这里的组合键都是小写

2快捷键这里只讲windows操作系统的快捷键):
 CONTROL: Ctrl键
 BACK_SPACE : 等价于 BACKSPACE 删除
ele.send_keys('baidu')
ele.send_keys(Keys.BACK_SPACE)  # 删除
# 组合键 Ctrl + a 全选 ,注意这里的组合键都是小写
ele.send_keys(Keys.CONTROL, 'a')
ele.send_keys(Keys.CONTROL, 'x')
ele.send_keys(Keys.CONTROL, 'v')

五、下拉框(需要实例化下拉框)

1、使用 Select 类
​ 1)、导包:from selenium.webdriver.support.select improt Select
​ 2)、实例化下拉框:s = Select(element)
​ 3)、调用方法:s.select_by_index() 索引从 0 开始文章源自玩技e族-https://www.playezu.com/297955.html

2、Select 类提供的方法
​ 1)、select_by_index() # 通过索引定位
​ 2)、select _by_value() # 通过 value 值
​ 3)、select_by_visible_text() # 显示文本文章源自玩技e族-https://www.playezu.com/297955.html

六、弹出框

1、弹窗分类
​ 系统弹窗:JS 实现
​ 自定义弹窗:前端代码封装文章源自玩技e族-https://www.playezu.com/297955.html

2、对话框的分类:
​ alert:警告框
​ confirm:确认框
​ prompt:提示框文章源自玩技e族-https://www.playezu.com/297955.html

3、步骤:
1)、需要切换到对话框
driver.switch_to.alert
2)、处理对话框
alert.text # 获取文本
alert.accept() # 接受
alert.dismiss() # 拒接文章源自玩技e族-https://www.playezu.com/297955.html

七、滚动条

1、准备 js 代码
js_down = "window.scrollTo(0, 1000)"
2、执行 js 代码
driver.execute_script(js_down)文章源自玩技e族-https://www.playezu.com/297955.html

八、切换 frame 表单

1、应用场景:
处于 frame 中的元素,虽然可以获取元素信息,但是代码执行时无法定位元素,因此需要先切换到 frame,再进行元素定位操作。文章源自玩技e族-https://www.playezu.com/297955.html

2、如何切换 frame
方法:driver.switch_to.frame("id/name/element") 传入的是代表 frame 唯一的特征值

3、如果要连续切换 frame 必须要先回到默认页面,才能够实现下一个 frame 的切换
回到主页面的方法:driver.switch_to.default_content()

九、多窗口的切换

1、获取当前的句柄值
print("当前的句柄值是:", driver.current_window_handle)
2、切换窗口操作,driver.window_handles 获取 driver 启动的所有窗口句柄
handles = driver.window_handles
3、切换窗口工作
driver.switch_to.window(handles[-1])

十、通过 cookie 绕过验证码

1、整理 cookie 信息为字典数据,对应的是 name 和 value,保存的一个变量中
cookie_value = {'name':'BDUSS', 'value':'afgfsgdhd'}
2、调用方法添加 cookie
driver.add_cookie(cookie_value)
3、刷新页面 -->发送 cookie 给服务器验证
driver.refresh()

 
评论  5  访客  5
    • 大瓶子
      大瓶子 9

      cookie 在实际一直没用到,不知道咋样。也没遇到下拉用 select

      • 周小丽
        周小丽 9

        让开发给个长期的 cookie

        • testjson
          testjson 9

          这个 cookie 一般有时效,时间到了就过期了

          • 思绪梦飞
            思绪梦飞 9

            里面的参数不会写死

            • 西学东渐
              西学东渐 9

              第十点好使吗,这个 cookie 是一直固定的?

            匿名

            发表评论

            匿名网友
            确定

            拖动滑块以完成验证