1. 程式人生 > >Selenium-WebDriverApi介面詳解

Selenium-WebDriverApi介面詳解

一:# 重新整理 (AppiumDriver) driver.refresh() # 前進 driver.forward() # 後退 driver.back() # 通過ID定位目標元素 driver.find_element_by_id('i1') # 通過className定位目標元素 driver.find_element_by_class_name('c1') # 通過name屬性定位目標元素 driver.find_element_by_name('n1') # 通過Xpath定位目標元素 driver.find_element_by_xpath('//*[@id="i1"]') # 通過css Selector定位目標元素 driver.find_element_by_css_selector('#i1') # 通過標籤名稱定位(注:在一個頁面中,標籤一定會重複,所以不用這個來進行定位) driver.find_element_by_tag_name('input') # 通過標籤中的文字查詢元素 driver.find_element_by_link_text('登入') # 通過標籤中文字的模糊匹配查詢 driver.find_elements_by_partial_link_text('錄')

二:獲取標籤元素常用的一共有8種定位方式,而Selenium實際提供了18種定位方式,還有8種是上面的複數形式,這裡就不一一介紹了,實際運用中並不常用,還有2種實際上是這上面所說16種的底層封裝。引數化的一種呼叫方式而已。

Cookie操作 # 根據cookieKey,獲取cookie資訊 cookie = driver.get_cookie('cookieKey') # 獲取所有cookie資訊 cookies = driver.get_cookies() # 新增cookie,嚴格按照格式新增,cookie的key為name,value為value driver.add_cookie({'name':'tmp','value':'123123123'}) # 刪除所有cookie資訊 driver.delete_all_cookies() # 根據cookieKey刪除對應cookie driver.delete_cookie('UiCode') # 獲取當前瀏覽器的大小 driver.get_window_size() # 通過畫素設定瀏覽器的大小 driver.set_window_size('width','height') # 獲取當前視窗針對於Windows的位置的座標x,y driver.get_window_position() # 設定當前視窗針對Windows的位置,x,y driver.set_window_position(20,20) # 最大化當前視窗,不需要傳參 driver.maximize_window() # 返回當前操作的瀏覽器控制代碼 driver.current_window_handle # 返回所有開啟server的瀏覽器控制代碼 driver.window_handles

三:擷取當前頁面 # 獲取當前頁面的二進位制圖片資料,需要自己去寫入檔案 driver.get_screenshot_as_png() # as_png的上層封裝,只需要傳入圖片名稱自動寫成圖片 driver.get_screenshot_as_file('fileName.png')

四:執行JavaScript語句 driver.execute_script('JavaScript Commond') # 例: # 通過js來操作滾動條 # 引數1:x  引數2: y window.scrollTo(100,400); 關閉與退出

# 當開啟多個時,關閉當前頁面 driver.close() # 退出並關閉所有頁面驅動 driver.quit() 其他 # 返回頁面原始碼 driver.page_source # 返回tag標題 driver.title # 返回當前Url driver.current_url # 獲取瀏覽器名稱 如:chrome driver.name

ElementApi介面 # 根據標籤屬性名稱,獲取屬性value element.get_attribute('style') # 向輸入框輸入字串 如果input的type為file型別 可以輸入檔案絕對路徑上傳檔案 element.send_keys() # 清除文字內容 element.clear() # 滑鼠左鍵點選操作 element.click() # 通過屬性名稱獲取屬性 element.get_property('id') # 返回元素是否可見 True or False element.is_displayed() # 返回元素是否被選中 True or False element.is_selected() # 返回標籤元素的名字 element.tag_name # 獲取當前標籤的寬和高 element.size # 獲取元素的文字內容 element.text # 模仿回車按鈕 提交資料 element.submit() # 獲取當前元素的座標 element.location # 擷取圖片 element.screenshot()

五:常見異常   1.NoSuchElementException:沒有找到元素   2.NoSuchFrameException:沒有找到iframe   3.NoSuchWindowException:沒找到視窗控制代碼handle   4.NoSuchAttributeException:屬性錯誤      5.NoAlertPresentException:沒找到alert彈出框   6.ElmentNotVisibleException:元素不可見   7.ElementNotSelectableException:元素沒有被選中   8.TimeoutException:查詢元素超時