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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM