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()
转自https://blog.csdn.net/u014773821/article/details/72188621

posted @ 2019-07-02 13:57  dsy_sun  阅读(2623)  评论(0编辑  收藏  举报