基於python3.6,selenium3.141,詳細資料介紹查看官方API文檔,點擊這裏
css
1、對瀏覽器操做 html
1 driver = webdriver.Chrome() # 初始化chrome 2 driver1 = webdriver.Firefox() # 初始化Firefox 3 driver2 = webdriver.Ie() # 初始化IE 4 driver3 = webdriver.Edge() # # 初始化Edge 5 driver.get("https://www.baidu.com") # 打開url 6 driver.capabilities['version'] # 獲取瀏覽器version 7 driver.maximize_window() # 將瀏覽器最大化顯示 8 driver.set_window_size(480, 800) # 設置瀏覽器寬480、高800顯示 9 driver.back() # 瀏覽器後退 10 driver.forward() # 瀏覽器前進 11 driver.title # 獲取當前頁面的title 12 driver.current_url # 獲取當前頁面的URL 13 driver.current_window_handle # 獲取當前瀏覽器窗口的句柄 14 driver.close() # 關閉瀏覽器,關閉當前瀏覽器,即最上層那個 15 driver.quit() # 關閉webdriver打開的全部瀏覽器
各瀏覽器驅動下載地址,注意版本要對上
Chrome:http://npm.taobao.org/mirrors/chromedriver/
Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox:https://github.com/mozilla/geckodriver/releases
Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/
IE:http://selenium-release.storage.googleapis.com/index.html
2、頁面元素定位python
最好使用id,name的方式定位元素,由於通常這兩個元素是全局惟一的;有時候元素不惟一,推薦使用xpath或者css定位,根據我的喜愛而定,不推薦使用classgit
1 # return :WebElement - the element if it was found 2 driver.find_element(By.ID, 'foo') 3 driver.find_element_by_id("foo") 4 driver.find_element_by_name("foo") 5 driver.find_element_by_class_name("foo") 6 driver.find_element_by_tag_name("h1") 7 driver.find_element_by_link_text("Sign In") 8 driver.find_element_by_partial_link_text("Sign") 9 driver.find_element_by_xpath("//div/td[1]") 10 driver.find_element_by_css_selector("#foo")
1 # return: list of WebElement - a list with elements if any was found. An empty list if not 2 driver.find_elements(By.CLASS_NAME, 'foo') 3 driver.find_elements_by_id("foo") 4 driver.find_elements_by_name("foo") 5 driver.find_elements_by_class_name("foo") 6 driver.find_elements_by_tag_name("h1") 7 driver.find_elements_by_link_text("Sign In") 8 driver.find_elements_by_partial_link_text("Sign") 9 driver.find_elements_by_xpath("//div[contains(@class, 'foo')]") 10 driver.find_elements_by_css_selector("#foo")
3、頁面元素操做github
1 # 清除輸入框的默認內容 2 driver.find_element_by_id("foo").clear() 3 # 輸入框裏輸入context 4 driver.find_element_by_id("foo").send_keys("context") 5 # 單擊一個按鈕 6 driver.find_element_by_id("foo").click() 7 # 提交表單 8 driver.find_element_by_id("foo").submit() 9 # 返回元素的尺寸 10 driver.driver.find_element_by_id("foo").size 11 # 獲取元素文本 12 driver.find_element_by_id("foo").text 13 # 返回元素的屬性值,元素擁有的任意屬性。若是是input的,能夠經過獲取value值得到當前輸入的值 14 driver.find_element_by_id("foo").get_attribute('value') 15 # 返回元素的結果是否可見,返回結果爲True或False 16 driver.find_element_by_id("foo").is_displayed()
4、鼠標事件web
1 from selenium.webdriver.common.action_chains import ActionChains 2 # 定位鼠標元素 3 mouse = driver.find_element_by_id("foo") 4 # 對定位到的元素執行鼠標右鍵操做 5 ActionChains(driver).context_click(mouse).perform() 6 # 對定位到的元素執行鼠標雙擊操做 7 ActionChains(driver).double_click(mouse).perform() 8 # 對定位到的元素執行鼠標移動到上面的操做 9 ActionChains(driver).move_to_element(mouse).perform() 10 # 對定位到的元素執行鼠標左鍵按下的操做,注意這裏是點擊下去不釋放 11 ActionChains(driver).click_and_hold(mouse).perform() 12 13 # 鼠標拖放操做 14 element = driver.find_element_by_id("foo1") # 定位元素的原位置 15 target = driver.find_element_by_id("foo2") # 定位元素要移動到的目標位置 16 ActionChains(driver).drag_and_drop(element, target).perform() # 執行元素的移動操做
5、鍵盤事件chrome
1 from selenium.webdriver.common.keys import Keys 2 3 driver.find_element_by_id("foo").send_keys(Keys.BACK_SPACE) # 刪除鍵(BackSpace) 4 driver.find_element_by_id("foo").send_keys(Keys.SPACE) # 空格鍵(Space) 5 driver.find_element_by_id("foo").send_keys(Keys.TAB) # 製表鍵(Tab) 6 driver.find_element_by_id("foo").send_keys(Keys.ESCAPE) # 回退鍵(Esc) 7 driver.find_element_by_id("foo").send_keys(Keys.ENTER) # 回車鍵(Enter) 8 driver.find_element_by_id("foo").send_keys(Keys.DELETE) # 刪除鍵(Delete) 9 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, 'a') # 全選(Ctrl+A) 10 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, 'c') # 複製(Ctrl+C) 11 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, 'x') # 剪切(Ctrl+X) 12 driver.find_element_by_id("foo").send_keys(Keys.CONTROL, 'v') # 粘貼(Ctrl+V)