元素的操作:鼠标,键盘,弹窗,

一,元素的基本操作方法

,基本操作
1,清空 元素.clear()
2,输入 元素.send_keys("需要输入的内容")
3,点击 元素.click(),其它操作--->主要是为了验证实际结果与预期结果是否一致
1,返回元素大小 元素.size
2,获取元素的文本 元素.text  #文本指的是标签之间的文字
3,获取页面的title driver.title
4,获取当前页面的URL driver.current_url
5,获取属性值 元素.get_attribute("属性名")
6,判断元素是否可见 元素.is_display() 返回布尔值
7,判断元素是否可用 元素.is_enabled()
#text,size,title,current_url为属性,调用时不用加()号

二鼠标的操作

1鼠标事件的操作步骤:
    1)导包:from selenium.webdriver.common.action_chains import ActionChains#使用鼠标必须先导入ActionChains
	2)对类进行实例化
    ActionChains(driver).鼠标的操作方法名.perform()
1)鼠标拖拽
ActionChains(driver).drag_and_drop(起始元素,终止元素).perform()#两个元素之间的移动
ActionChains(driver).drag_and_drop_by_offset(拖动元素,坐标值,234,231,两个数组成).perform()#元素到坐标的拖动
案例:
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get("E:\web\练习页面\drop.html")
    #定位元素
    Red=driver.find_element_by_id("div1")
    #定位元素
    Green=driver.find_element_by_id("div2")
    #使用鼠标拖拽
    #ActionChains(driver).drag_and_drop(Red,Green).perform()
    ActionChains(driver).drag_and_drop_by_offset(Red, 583, 205).perform()

2)鼠标悬停
ActionChains(driver).move_to_element(需要悬停操作的元素).perform()
案例:
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    driver=webdriver.Chrome()
    driver.get("http://www.baidu.com")
    A=driver.find_element_by_css_selector('div[id="u1"]>a:nth-child(8)')
    #鼠标悬停
    ActionChains(driver).move_to_element(A).perform()
3)双击 double_click()
ActionChains(driver).double_click(点击的元素).perform()
4)context_click()右键
ActionChains(driver).context_click(点击的元素).perform()
5)点击鼠标左键 click_and_hold()
ActionChains(driver).click_and_hold(A).perform()

三,键盘的操作

通过selenium来实现快捷键
基本步骤:
    1,导包
    from selenium.webdriver.common.keys import Keys
    2,基本语法
    单个键:元素.send_keys(Keys.键名)#键名必须大写
     组合键:元素.send_keys(Keys.大写的键,"小写的键")--->入ctrl+c 是 元素.send_keys(Key.CONTROL,"c")
     3,键盘的基本操作
    	元素.send_keys(Keys.BACK_SPACE)删除键Backspace
        元素.send_keys(Keys.CONTROL,"c")--->复制元素里的文字
        元素.send_keys(Keys.CONTROL,"a")--->全选元素里的文字
        元素.send_keys(Keys.CONTROL,"v")----->粘贴复制的文字
        元素.send_keys(Keys.CONTROL,"x")----->剪切元素里的文字
        元素.send_keys(Keys.TAB) ----空格键
        元素.send_keys(Keys.ESCAPE)--->ESC键
        元素.send_keys(Keys.ENTER)--->回车键
         元素.send_keys(Keys.F1)--->F1键
         元素.send_keys(Keys.F12)---->F12键

四,下拉菜单的操作

1,二次定位,先定位父元素---父元素=driver.find_element_by_xxx()
          定位子元素:子元素=父元素.find_element_by_xxx()
    案例:from selenium import webdriver
        from time import  sleep
        driver=webdriver.Chrome()#打开浏览器
        driver.get("https://192.168.244.129/ecshop/") #打开网页
        anquan = driver.find_element_by_css_selector('#details-button')
        anquan.click()
        anquan1 = driver.find_element_by_css_selector('#proceed-link')
        anquan1.click()
        zc = driver.find_element_by_partial_link_text('免费注册')
        zc.click()
        #定位主元素密码提示问题列表 
               select=driver.find_element_by_css_selector('select[name="sel_question"]')
        #定位要选择的密码提示    
            zhi=select.find_element_by_css_selector('option[value="friend_birthday"]')
            zhi.click()
2,通过select类来处理下拉菜单
  1)导入select 类:from selenium.webdriver.support.select import select
  2) 定位下拉菜单元素 元素变量名=driver.find_element_by_xxx()
 3)使用select 类,操作下拉菜单
     select(元素名).select_by_value('value的值'):Select(selectA).select_by_value("sh")
     select(元素).select_by_index(索引值)#索引从0开始:Select(selectA).select_by_index(3)
     select(元素).select_by_visible_text('文本内容'):Select(selectA).select_by_visible_text('A重庆')
           

五 滚动条操作

1,用JavaScript 脚本控制滚动条
    编写控制滚动条实现的JS代码
    #最底层
    js1="window.scrollTo(0,10000)"
    #最顶层
    js2="window.scrollTO(0,0)"
    #执行JAVUScript语句
    driver.execute_script(javascript 语句)
  
    案例:打开淘宝网,拉到最下面再拉到最上面
        from selenium import webdriver
        from time import sleep
        driver=webdriver.Chrome()
        driver.get('http://www.taobao.com')
        js="window.scrollTo(0,10000)" #拉到最下面
        driver.execute_script(js)#执行JavaScript语句
        sleep(3)
        js1="window.scrollTo(0,0)" #拉到网页最上面
        driver.execute_script(js1)#执行JavaScript语句
        sleep(2)
        driver.quit()
2,聚焦元素的位置
  1)找到元素 driver.find_element_by....
  2)聚焦元素:driver.execute_script(JS代码,元素)
    JS代码="arguments[0].srcollIntoView();"
    案例:apple=driver.find_element_by_css_selector('#pga')
        driver.execute_script("arguments[0].scrollIntoView();",apple)

六 iframe操作

1,  为什么要操作iframe(表单嵌套)?
Frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位;而frame和iframe需要切换进去才能定位到其中的元素。这时就需要通过switch_to.frame()方法将当前定位的主体切换为 frame/iframe表单的内嵌页面中。 
2,怎么判断所操作的元素在iframe里面?
1)当使用正确的元素定位方式无法定位到某个元素时,就考虑元素是否在iframe里面
2)iframe使用场景:登录输入框,富文本框,后台管理表单
3,找iframe标签:1,F12的element的最下面查找iframe关键字
    		  2,也可以在已选择元素向上查找
4,进入iframe --->如果有2层iframe,就用进入2,必须从最外层一层一层进入
driver.switch_to.frame(参数)
参数:
    1,当iframe标签有固定的id或者name属性值的时候,参数等于id或者name的属性值
    2,如果iframe标签没有id或name属性,或者id以及name的属性不固定,参数等于定位的iframe的元素(要先定位iframe元素)
    3,当明确知道iframe的索引值,参数就等于索引值,索引从0开始.
5,操作iframe内的元素
 输入,点击
6,退出iframe
driver.switch_to.parent_frame()#返回到上一层
driver.switch_to.default_content()#跳出到最外层
   

七 弹窗处理

1,定位触发弹窗出现的元素
2,获取弹窗/进入弹窗
  alert=driver.switch_to.alert
3.1,对弹窗做操作--->此方法只用于浏览器自带的弹窗
  获取弹窗文本内容
     alert.text
  点击弹窗的确认按钮
	alert.accept()
   点击弹窗的取消按钮
	alert.dismiss()
    在弹窗中输入文字
    alert.send_keys('输入内容')
   案例:from selenium import webdriver
        from time import sleep
        driver=webdriver.Chrome()
        driver.get("E:\web\练习页面\注册A.html")
        #定位弹窗所在元素
        driver.find_element_by_id('alerta').click()
        sleep(2)
        #捕获弹窗
        alert=driver.switch_to.alert
        #操作弹窗
        alert.accept()
3.2 自定义弹窗操作--->通过JS操作
    from selenium import webdriver
    driver=webdriver.Chrome()
    #去掉弹窗操作,主要通过修改元素的style.display的值修改
    driver.get('https://www.itsource.cn/')
    js='document.getElementById("side-bar").style.display="none";'
    driver.execute_script(js)
    JS1='document.getElementById("div_company_mini").style.display="none";'
driver.execute_script(JS1)

八 多窗口切换

1,获取当前窗口句柄
  handle=driver.current_window_handle
2,获取所有窗口句柄
  handles=driver.window_handles
3,进入新窗口
driver.switch_to.window(handles[索引号])
4,退出新窗口,退回之前的窗口
driver.switch_to.window(handle)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值