Selenium基本操作
阿新 • • 發佈:2018-12-15
Selenium 基本操作
配置環境
- python
- ChromeDriver 下載地址
- selenium庫
準備工作
- 安裝python(略)
- 安裝selenium庫
pip install selenium
- 安裝Chrome
- 下載 ChromeDriver 對應版本, 並將ChromeDriver 放到py檔案目錄下
定位元素
- 返回一個匹配元素
find_element_by_id() # 通過元素的ID屬性定位元素
find_element_by_name() # 通過元素的name屬性定位到該元素
find_element_by_class_name() # 通過元素的class屬性定位到該元素
find_element_by_tag_name() # <div>,<span>等標籤定位到該元素
find_element_by_link_text() # 通過<a>等連結元素的文字定位到該元素
find_element_by_partial_link_text()
find_element_by_xpath() # 通過XPath定位到該元素,建議掌握
find_element_by_css_selector() # 通過css選擇器定位元素
以上操作,見名知意,都是返回第一個匹配的WebElement元素
- 返回一個匹配元素列表
find_elements_by_name( ) # 返回所有具有相同name屬性的元素列表
find_elements_by_class_name() # 返回所有具有相同class_name屬性的元素列表
find_elements_by_tag_name() # <div>,<span>返回所有具有相同標籤的元素列表
find_elements_by_link_text() # 通過<a>返回所有具有相同文字描述的元素列表
find_elements_by_partial_link_text()
find_elements_by_xpath() # 返回所有具有相同Xpath屬性的元素
find_elements_by_css_selector( ) # 返回所有具有相同css_selector的元素
定位元素操作,一旦執行失敗(即查詢不到), 就會丟擲異常因此必須使用
try: .. except: ...
機制避免錯誤的行為影響程式繼續進行
WebDriver 的一些常用操作:
例項化一個 WebDriver物件
driver = webdriver.Chrome()
千萬不要忘記()
driver.curren_url : 獲取當前載入頁面的 URL
driver.close() : 關閉當前視窗, 如果當前視窗是最後一個視窗, 瀏覽器將關閉
driver.quit() : 關閉所有視窗並停止 ChromeDriver 的執行
driver.add_cookie(cookie_dict) : 為當前會話新增 cookie
driver.get_cookie(name) : 得到執行 cookie
driver.get_cookies() : 得到所有的 cookie
driver.delete_all_cookies() : 刪除當前會話的所有cookie
driver.delete_cookie(name) : 刪除指定 cookie
driver.back() : 相當於瀏覽器的後退歷史記錄
driver.forward() : 相當於瀏覽器的前進歷史記錄
driver.execute_script(script, *args) : 同步執行 js 指令碼
driver.execute_async_script(script, *args) : 非同步執行 js 指令碼
driver.get(url) : 在當前視窗載入 url
driver.refresh() : 重新整理當前頁面
driver.current_window_handle : 當前視窗的 handle, 相當於一個指標一樣的東西, 用來指向當前視窗
driver.window_handles : 當前瀏覽器中的已經開啟的所有視窗, 是一個 list
driver.switch_to_window(window_handle) : 切換 window_handle 指向的視窗
driver.title : 當前頁面的 title
driver.name : 當前瀏覽器的名字
WebElement 的一些常用操作
通過元素定位獲取一個WebElement元素
webEle = find_element_by_id('password')
webEle.clear() : 清楚元素的內容, 假如這個元素是一個文字元素
webEle.click() : 點選當前元素
webEle,is_displayed() : 當前元素是否可見
webEle.is_enabled() : 當前元素是否禁止, 比如經常會禁用一些元素的點選
webEle.is_selected() : 當前元素是否選中, 文字輸入框的內容
webEle.send_keys(*value) : 向當前元素模擬鍵盤事件
webEle.submit() : 提交表單
webEle.tag_name : 當前元素的標籤名
webEle.text : 當前元素的內容, 注意是沒有(括號)的
webEle.get_attribute(name) : 獲取當前元素執行屬性的值