• webdriver定位元素的方法和基础函数的使用


    一.定位元素

    (1)id定位

              driver.find_element_by_id("id")

    (2)name定位

              driver.find_element_by_name("name")

    (3)class定位

              driver.find_element_by_class_name("class_name")

    (4)tag定位(<div>,<input>,<a>)

              driver.find_element_by_tag_name("input")

    (5)link定位(a里面定义的link_text)

              driver.find_element_by_link_text("百度地图")

    (6)partial link定位(a标签内部名称的一部分)

              driver.find_element_by_partial_link_text("地图")

    (7)XPath定位

             1)绝对路径

                     driver.find_element_by_xpath("/html/body/div/div[2]/div/div/from/span/input")

             2)元素属性定位

                    driver.find_element_by_xpath("//input[@id='kw']")

                    driver.find_element_by_xpath("//*[@class='s_bg']")#不指定标签

             3)层级和属性结

                    driver.find_element_by_xpath("//span[@id='form']/span/input")

             4)使用逻辑运算符定位

                    driver.find_element_by_xpath("//input[@id='aa'and @name='bb']/span/input")

    (8)css定位

             1)class属性定位

                    driver.find_element_by_css_selector(".s_bg")

             2)id属性定位

                    driver.find_element_by_css_selector("#su")

             3)标签名定位

                  driver.find_element_by_css_selector("input")

                  driver.find_element_by_css_selector("span>input")                                #父子关系

                  driver.find_element_by_css_selector("[autocomplete=off]")                   #属性

                  driver.find_element_by_css_selector("form.fm>span>input.s_bg")      #组合

    二.对元素的简单操作函数

    (1)清除

               driver.find_element_by_id().clear()

    (2)点击

              driver.find_element_by_id().click()

    (3)输入

              driver.find_element_by_id().send_keys("username")

    (4)提交表单,可当做回车键使用,与click()互换使用,范围比click()小

             driver.find_element_by_id().submit()

    (5)元素大小

             size=driver.find_element_by_id().size

    (6)获取元素的文本

             text=driver.find_element_by_id().text

    (7)获取类型

            driver.find_element_by_id().get_attribute('type')

    (8)是否可见,返回值是ture or false

             driver.find_element_by_id().is_displayed()

    (9)获取当前页面标题

             title=driver.title

    (10)获取当前页面的url

              url=driver.current_url

    (11)隐式等待

               driver.implicitly_wait(10)

    三.常用的函数

    1.控制浏览器

    (1)控制浏览器大小

             driver.set_window_size(400,800)

    (2)控制浏览器前进后退

             driver.back()

            driver.forward()

    (3)刷新

             driver.refresh()

              
    2.鼠标事件

            导入ActionChains

            from selenium.webdriver.common.action_chains import ActionChains 
             
    (1)鼠标右击

             right_click=driver.find_element_by_id("xx")        #定位要右击的元素

             ActionChains(driver).context_click(right_click).perform()

    (2)鼠标悬停--     move_to_element()

             above=driver.find_element_by_id("id")     

             ActionChains(driver).move_to_element(above).perform()

    (3)鼠标双击操作

             ActionChains(driver).double_click().perform()

    (4)鼠标拖动操作----drag_and_drop(source,target)

              source=driver.find_element_by_id("xx")#source:鼠标拖动的源元素

              target=driver.find_element_by_id("xx")#target:鼠标拖动的目标元素

              ActionChains(driver).drag_and_drop(source,target).perform()

    3.键盘事件

         导入Keys类

         from selenium.webdriver.common.keys import Keys

    (1)driver.find_element_by_id().send_keys(Key.BACK_SPACE)           #删除键

    (2)driver.find_element_by_id().send_keys(Keys.SPACE)                      #空格键

    (3)driver.find_element_by_id().send_keys(Keys.TAB)                            #制表键

    (4)driver.find_element_by_id().send_keys(Keys.ESCAPE)                   #回退键

    (5)driver.find_element_by_id().send_keys(Keys.ENTER)                      #回车键

    (6)driver.find_element_by_id().send_keys(Keys.CONTROL,'a')           #全选

    (7)driver.find_element_by_id().send_keys(Keys.CONTROL,'c')           #复制

    (8)driver.find_element_by_id().send_keys(Keys.CONTROL,'x')           #剪切

    (9)driver.find_element_by_id().send_keys(Keys.CONTROL,'v')           #粘贴

    (10)driver.find_element_by_id().send_keys(Keys.F1)                            #键盘F1

    4.警告框的处理--- switch_to_alert()

    (1)获取警示框的文本

             driver.switch_to_alert().text

    (2)接受警示

             driver.switch_to_alert().accept()

    (3)解散警示框

             driver.switch_to_alert().dismiss()

    (4)发送文本至警告

            driver.switch_to_alert().send_keys(keysToSend)


    5.上传文件----send_keys()

            driver.find_element_by_id("file").send_keys('D:\upload_file.txt')

    6.操作cookie

    (1)获取全部

             driver.get_cookie()

    (2)获取cookie的name

             driver.get_cookie(name)

    (3)添加cookie信息

             driver.add_cookie({'name':'aa','value':'bb'})

    (4)删除特定的cookie

            driver.delete_cookie(name,optionString)

    (5)删除全部cookie

             driver.delete_all_cookies()

  • 相关阅读:
    PHPStrom 设置终端字体大小
    PostgreSQL 9 夸库查询
    弹性布局
    sql中的 where 、group by 和 having 用法解析
    数据库面试中常问的几个问题
    SQL中 UNION 和 UNION ALL 操作符小结
    SQL里 inner JOIN、 left (OUTER) JOIN 、right (OUTER) JOIN、 full (OUTER) JOIN 之间的区别
    MYSQL中LIMIT用法
    Java集合框架小结
    jQuery$.each循环遍历详解,各种取值对比,$.each遍历数组、对象、Dom元素、二维数组、双层循坏、类json数据等等
  • 原文地址:https://www.cnblogs.com/baoshilin/p/12507966.html
Copyright © 2020-2023  润新知