1. clear() 清除文本php
2. send_keys() 模擬輸入css
3. click() 單擊元素html
4.get_attribute 獲取元素屬性jquery
5.driver.close() 關閉當前窗口web
6.driver.quite() 關閉全部窗口,結束driver運行api
1 from selenium import webdriver 2 from time import sleep 3 import os 4 5 driver=webdriver.Chrome() 6 # 窗口最大化 7 driver.maximize_window() 8 9 # os.getcwd()用法:執行文件(***.py文件)與html文件在同一目錄下 10 url='file:///' + os.getcwd()+'/html/註冊A.html' 11 driver.get(url) 12 13 username=driver.find_element_by_id('userA') 14 username.send_keys('admin') 15 sleep(3) 16 # 清除文本框內容 17 username.clear() 18 19 # 獲取元素屬性 20 print(username.get_attribute('placeholder')) 21 22 sleep(3) 23 driver.quit()
2、WebDriver操做鼠標鍵盤操做瀏覽器
1. 導包:from selenium.webdriver.common.action_chains import ActionChains
2. 實例化ActionChains對象:Action=ActionChains(driver)ide
說明:在WebDriver中將操做鼠標的方法封裝在ActionChains類中ui
(1)context_click() 右擊 --> 此方法模擬鼠標右鍵點擊效果
(2)double_click() 雙擊 --> 此方法模擬鼠標雙擊效果
(3)drag_and_drop() 拖動 --> 此方法模擬鼠標拖動效果
(4)move_to_element() 懸停 --> 此方法模擬鼠標懸停效果
(5)perform() 執行 --> 此方法用來執行以上全部鼠標方法url
# coding="utf-8" from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from time import sleep from selenium.webdriver.common.alert import Alert from time import time # driver = webdriver.Firefox() driver = webdriver.Chrome() url = "http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable" driver.get(url) # 切換到目標元素所在的frame driver.switch_to.frame("iframeResult") # 肯定拖拽目標的起點 source = driver.find_element_by_id("draggable") # 肯定拖拽目標的終點 target = driver.find_element_by_id("droppable") # 造成動做連接 actions = ActionChains(driver) actions.drag_and_drop(source, target) # 執行 actions.perform() sleep(5) driver.quit()
鍵盤操做:
導包:from selenium.webdriver.common.keys import Keys
ActionChains實現方法:
ActionChains(driver).key_down(Keys.CONTROL).send_keys('a').\
key_up(Keys.CONTROL).perform()
1. send_keys(Keys.BACK_SPACE)刪除鍵(BackSpace)
2. send_keys(Keys.SPACE)空格鍵(Space)
3. send_keys(Keys.TAB)製表鍵(Tab)
4. send_keys(Keys.ESCAPE)回退鍵(Esc)
5. send_keys(Keys.ENTER)回車鍵(Enter)
6. send_keys(Keys.CONTROL,'a') 全選(Ctrl+A)
7. send_keys(Keys.CONTROL,'c')複製(Ctrl+C)
8. send_keys(Keys.CONTROL,'v')粘貼(Ctrl+V)
7. send_keys(Keys.CONTROL,'x')剪切(Ctrl+X)
1 from selenium import webdriver 2 from time import sleep 3 import os 4 # 導包 5 from selenium.webdriver.common.keys import Keys 6 7 driver=webdriver.Chrome() 8 driver.maximize_window() 9 url='file:///' + os.getcwd()+'/html/註冊A.html' 10 driver.get(url) 11 12 ''' 13 需求: 14 1). 輸入用戶名:admin1,暫停2秒 刪除1 15 2). 全選用戶名:admin 暫停2秒 16 3). 複製用戶名:admin 暫停2秒 17 4). 粘貼到密碼框 暫停2秒 18 5). 關閉瀏覽器 19 ''' 20 21 # 定位用戶名編輯框 22 element=driver.find_element_by_id("userA") 23 # 定位密碼編輯框 24 plassword=driver.find_element_by_id('passwordA') 25 # 輸入用戶名 26 element.send_keys("admin1") 27 # 刪除1 28 element.send_keys(Keys.BACK_SPACE) 29 # 全選 30 element.send_keys(Keys.CONTROL,'a') 31 # 複製 32 # element.send_keys(Keys.CONTROL,'c') 33 34 # 剪切 35 element.send_keys(Keys.CONTROL,'x') 36 37 # 粘貼 38 plassword.send_keys(Keys.CONTROL,'v') 39 40 sleep(3) 41 driver.quit()
send_keys(Keys.F12)
send_keys(Keys.ENTER)
1. select_by_index() --> 根據option索引來定位,從0開始
2. select_by_value() --> 根據option屬性 value值來定位
3. select_by_visible_text() --> 根據option顯示文原本定位
1 # 導入Webdrive包 2 from selenium import webdriver 3 from time import sleep 4 import os 5 6 # 導入select類 7 from selenium.webdriver.support.select import Select 8 # 實例化瀏覽器對象 9 driver=webdriver.Chrome() 10 url='file:///' + os.getcwd()+'/html/註冊A.html' 11 driver.get(url) 12 13 ''' 14 定位option方式: 15 find_elements_xxx() 16 tag_name:option--演示 17 css selector--演示 18 Xpath 19 ''' 20 # 第一種方法:使用tag_name 21 ''' 22 options=driver.find_elements_by_tag_name("option") 23 for el in options: 24 if el.text=="A上海": 25 sleep(2) 26 #點擊 27 el.click() 28 for el in options: 29 if el.get_attribute("value")=="cq": 30 sleep(2) 31 #點擊 32 el.click() 33 for el in options: 34 if el.text=="A廣州": 35 sleep(2) 36 #點擊 37 el.click() 38 ''' 39 # 第二種方法-select類 40 # 第一步實例化Select 41 select=Select(driver.find_element_by_css_selector("#selectA")) 42 43 sleep(2) 44 select.select_by_visible_text('A上海') 45 sleep(2) 46 select.select_by_value("sh") 47 sleep(2) 48 select.select_by_index(2) 49 50 #打印全部的選中項文本 51 for option in select.all_selected_options: 52 print(option.text) 53 54 sleep(2) 55 driver.quit()
說明:在WebDriver中封裝了獲取當前窗口句柄方法和獲取全部窗口句柄的方法以及切換指定句柄窗口的方法;
(句柄:英文handle,窗口的惟一識別碼)
方法:
1). driver.current_window_handle --> 獲取當前窗口句柄
2). driver.window_handles --> 獲取全部窗口句柄
3). driver.switch_to.window(handle) --> 切換指定句柄窗口
1 # 導入Webdrive包 2 from selenium import webdriver 3 from time import sleep 4 import os 5 6 # 實例化瀏覽器對象 7 driver=webdriver.Chrome() 8 url='file:///' + os.getcwd()+'/html/註冊實例.html' 9 driver.get(url) 10 ''' 11 1. 獲取註冊實例.html當前窗口句柄 12 2. 點擊註冊實例.html頁面中註冊A頁面 13 3. 獲取全部窗口句柄 14 4. 遍歷判斷窗口句柄並切換到註冊A頁面 15 5. 操做註冊A頁面元素,註冊信息 16 ''' 17 # 第一步獲取當前窗口句柄 18 cur_handle=driver.current_window_handle 19 print('默認打開的窗口:',driver.window_handles) 20 print('第一個窗口:',driver.current_window_handle) 21 22 # 定位-點擊註冊A頁面 23 driver.find_element_by_css_selector("#ZCA").click() 24 25 # 第三步:獲取全部窗口句柄 26 all_handles=driver.window_handles 27 print('當前全部句柄',all_handles) 28 29 driver.switch_to_window(all_handles[1]) 30 sleep(2) 31 driver.close() 32 print('關閉一個之後,打開的窗口:',driver.window_handles) 33 34 driver.switch_to_window(all_handles[1]) 35 sleep(1) 36 driver.close() 37 driver.switch_to_window(all_handles[0]) 38 39 # 第四步:遍歷(只有兩個窗口) 40 for handle in all_handles: 41 print("遍歷窗口handle爲:",handle) 42 if handle !=cur_handle: 43 driver.switch_to.window(handle) 44 # 填寫註冊A-註冊信息 45 driver.find_element_by_css_selector("#userA").send_keys("admin") 46 driver.find_element_by_css_selector("#passwordA").send_keys("123456") 47 driver.find_element_by_css_selector("#telA").send_keys("18611111111") 48 driver.find_element_by_css_selector("#emailA").send_keys("123@qq.com") 49 50 sleep(2) 51 driver.quit()