生活随笔
收集整理的這篇文章主要介紹了
浏览器的各种操作
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
# 5.1、頁面刷新 # driver.refresh() # 5.2、設置全屏模式 # driver.maximize_window() # 5.3、設置屏幕大小 # driver.set_window_size(800,600) # 5.4、截屏 # driver.get_screenshot_as_file(r"D:WebDriverday01 est.png") # 5.5、前進后退 # driver.forward() # driver.back() ''' from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") driver.set_window_size(600,800) # 設置屏幕大小 driver.find_element_by_link_text("新聞").click() time.sleep(3) driver.back() # 后退到百度首頁 time.sleep(3) driver.forward() # 前進到新聞頁 driver.get_screenshot_as_file(r"D:WebDriverday01 est_jieping.png") # 截屏 time.sleep(3) driver.quit() ''' # 5.6、簡單元素操作 # 文本清除--->clear() # driver.find_element_by_id().clear() # 提交表單--->submit() # driver.find_element_by_id().submit() # 獲取元素的尺寸、文本、屬性、是否可見 # driver.find_element_by_id("kw").size # driver.find_element_by_id("s-bottom-layer-right").text # driver.find_element_by_id("kw").get_attribute("type") # driver.find_element_by_id("kw").is_displayed() ''' from selenium import webdriver import time driver=webdriver.Chrome() driver.get("http://www.youdao.com/") driver.find_element_by_id("translateContent").clear() # 清楚文本 time.sleep(3) driver.find_element_by_id("translateContent").send_keys("自動化") # 輸入文本 time.sleep(3) driver.find_element_by_id("translateContent").submit() # 提交內容 time.sleep(3) driver.back() # 后退 print(driver.find_element_by_id("translateContent").size) # 獲取元素尺寸 print(driver.find_element_by_class_name("copy-right").text) # 獲取元素文本 print(driver.find_element_by_id("translateContent").get_attribute("type")) # 獲取屬性值 print(driver.find_element_by_id("translateContent").is_displayed()) # 設置該元素是否用戶可見 driver.quit() ''' # 5.7、鼠標操作 # 執(zhí)行所有 ActionChains 中存儲的行為 # perform() # 鼠標單擊按鈕 # driver.find_element_by_id("su").click() # 右鍵點擊 # ActionChains(driver).context_click(driver.find_element_by_id("su")).perform() # 鼠標雙擊 # ActionChains(driver).double_click(driver.find_element_by_partial_link_text("登")).perform() # 鼠標懸停 # ActionChains(driver).move_to_element(driver.find_element_by_link_text("設置")).perform() # 拖動 # drag_and_drop(source,target) ''' from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") driver.implicitly_wait(10) time.sleep(3) driver.find_element_by_id("su").click() # 點擊 time.sleep(2) ActionChains(driver).context_click(driver.find_element_by_id("su")).perform() # 右擊 time.sleep(2) ActionChains(driver).double_click(driver.find_element_by_partial_link_text("登")).perform() # 雙擊 time.sleep(2) driver.find_element_by_id("TANGRAM__PSP_4__closeBtn").click() ActionChains(driver).move_to_element(driver.find_element_by_link_text("設置")).perform() # 懸停 time.sleep(3) driver.quit() ''' # 5.8、鍵盤的操作 # 鍵盤輸入 # driver.find_element_by_css_selector("[id='kw']").send_keys("測試工程師") # 鍵盤回車 # driver.find_element_by_id("TANGRAM__PSP_10__submit").send_keys(Keys.ENTER) # 鍵盤全選 # driver.find_element_by_id("TANGRAM__PSP_10__userName").send_keys(Keys.CONTROL,'a') # 鍵盤刪除一個字母 # driver.find_element_by_id("TANGRAM__PSP_10__userName").send_keys(Keys.BACKSPACE) # 鍵盤輸入空格鍵 # driver.find_element_by_id("TANGRAM__PSP_10__userName").send_keys(Keys.SPACE) ''' from selenium import webdriver from selenium.webdriver.common.keys import Keys import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") driver.implicitly_wait(10) driver.find_element_by_id("kw").send_keys("sele") # 向輸入框輸入內容 time.sleep(2) driver.find_element_by_id("kw").send_keys(Keys.SPACE) # 輸入空格 time.sleep(2) driver.find_element_by_id("kw").send_keys(Keys.BACKSPACE) # 刪除一個字母 time.sleep(2) driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"a") # 全選 time.sleep(2) driver.find_element_by_id("kw").send_keys(Keys.BACKSPACE) time.sleep(2) driver.find_element_by_id("kw").send_keys("自動化") driver.find_element_by_id("su").send_keys(Keys.ENTER) # 鍵盤回車 time.sleep(2) driver.quit() ''' # 5.9、獲取驗證信息:title URL text # 獲取頁面的title # driver.title # 獲取當前頁面的URL # driver.current_url # 獲取登錄名的用戶信息 # driver.find_element_by_id("spnUid").text ''' from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://email.163.com/") driver.implicitly_wait(10) driver.switch_to.frame(driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[2]/div[2]/div/div[1]/iframe")) driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/form/div/div[1]/div[2]/input").send_keys("*****") time.sleep(2) driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/form/div/div[3]/div[2]/input[2]").send_keys("*****") time.sleep(2) driver.find_element_by_id("dologin").click() time.sleep(2) print(driver.title) print(driver.current_url) print(driver.find_element_by_id("spnUid").text) driver.quit() ''' # 6.0、設置元素等待 # 顯式等待 # WebDriverWait(driver,5,0.5).until(expected_conditions.presence_of_element_located((By.ID,'kw'))).send_keys("selenium") # 隱式等待 # driver.implicitly_wait(10) # 休眠方法 # time.sleep() ''' from selenium import webdriver import time from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("http://www.baidu.com") driver.implicitly_wait(10) # 隱式等待 WebDriverWait(driver,5,0.5).until(expected_conditions.presence_of_element_located((By.ID,"kw"))).send_keys("selenium") time.sleep(3) # 休眠方法 driver.quit() ''' # 6.1、多表單切換 # driver.switch_to.frame() ''' from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://email.163.com/") driver.implicitly_wait(10) # 表單切換 driver.switch_to.frame(driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[2]/div[2]/div/div[1]/iframe")) driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/form/div/div[1]/div[2]/input").send_keys("*****") time.sleep(2) driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/form/div/div[3]/div[2]/input[2]").send_keys("****") time.sleep(2) driver.find_element_by_id("dologin").click() time.sleep(2) driver.quit() ''' # 6.2、多窗口的切換 # driver.switch_to.window(handle) ''' from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") driver.implicitly_wait(10) baidu_window = driver.current_window_handle # 獲取當前百度搜索窗口句柄 driver.find_element_by_link_text("登錄").click() driver.find_element_by_link_text("立即注冊").click() all_window = driver.window_handles # 獲取所有窗口句柄 for handle in all_window: if handle != baidu_window: driver.switch_to.window(handle) # 切換窗口 print("請注冊") driver.find_element_by_id("TANGRAM__PSP_4__userName").send_keys("你好") driver.find_element_by_id("TANGRAM__PSP_4__phone").send_keys("15325321545") driver.find_element_by_id("TANGRAM__PSP_4__password").send_keys("1fdfd23456") driver.find_element_by_id("TANGRAM__PSP_4__verifyCode").send_keys("5525") driver.find_element_by_id("TANGRAM__PSP_4__isAgree").click() time.sleep(3) driver.find_element_by_id("TANGRAM__PSP_4__submit").click() elif handle == baidu_window: driver.switch_to.window(handle) driver.find_element_by_xpath("/html/body/div[4]/div[2]/div[2]/div/div/div/div/div/div[3]/p[2]").click() driver.find_element_by_id("TANGRAM__PSP_10__userName").send_keys("15178849203") driver.find_element_by_id("TANGRAM__PSP_10__password").send_keys("maojun0501") driver.find_element_by_id("TANGRAM__PSP_10__submit").click() time.sleep(3) driver.quit() ''' # 6.3、警告框處理 # driver.switch_to.alert() ''' 在 WebDriver 中處理 JavaScript 所生成的 alert、confirm 以及 prompt 是很簡單的。具體做法是使用 switch_to.alert方法定位到 alert/confirm/prompt。然后使用 text/accept/dismiss/send_keys 按需進行操做。 text 返回 alert/confirm/prompt 中的文字信息。 accept 點擊確認按鈕。 dismiss 點擊取消按鈕,如果有的話。 send_keys 輸入值,這個 alertconfirm 沒有對話框就不能用了,不然會報錯。 ''' ''' from selenium import webdriver import time from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome() # 實例化瀏覽器 driver.get("http://www.baidu.com") # 打開url地址 ele = driver.find_element_by_link_text("設置") # 鼠標懸停設置鏈接 ActionChains(driver).move_to_element(ele).perform() driver.find_element_by_class_name("setpref").click() # 打開搜索設置 time.sleep(3) driver.find_element_by_css_selector("#gxszButton > a.prefpanelgo").click() # 保存設置 driver.switch_to.alert.accept() # 接收彈窗 driver.quit() ''' # 6.4、文件上傳 # send_keys實現(xiàn)上傳 ''' from selenium import webdriver import time import os driver = webdriver.Chrome() file_path = 'file:///'+ os.path.abspath('upfile.html') # 打開上傳功能頁面 driver.get(file_path) driver.find_element_by_name("file").send_keys("E:/upload.txt") # 定位上傳按鈕,添加本地文件 time.sleep(3) driver.quit() ''' # 6.5、操作cookie ''' 有時候我們需要驗證瀏覽器中是否存在某個 cookie,因為基于真實的 cookie 的測試是無法通過白盒和 集成測試完成的。WebDriver 提供了操作 Cookie 的相關方法可以讀取、添加和刪除 cookie 信息。 ? webdriver 操作 cookie 的方法有: get_cookies() 獲得所有 cookie 信息 get_cookie(name) 返回有特定 name 值有 cookie 信息 add_cookie(cookie_dict) 添加 cookie,必須有 name 和 value 值 delete_cookie(name) 刪除特定(部分)的 cookie 信息 delete_all_cookies() 刪除所有 cookie 信息 下面通過 get_cookies()來獲取當前瀏覽器的 cookie 信息。 ''' ''' from selenium import webdriver import time import os driver = webdriver.Chrome() # 實例化瀏覽器 driver.get("http://www.youdao.com") # cookie = driver.get_cookies() # 獲取cookie信息 driver.add_cookie({'name':'key-aaaaaaaa','value':'value-bbbbbbb'}) # 像cookie的name和value添加會話信息 # driver.delete_cookie('JSESSIONID') # 刪除key為'JSESSIONID'的cookie for co in driver.get_cookies(): print("%s -> %s"%(co['name'],co['value'])) driver.quit() ''' # 6.6、調用javascript ''' js="var q=document.documentElement.scrollTop=10000" js_ = "var q=document.documentElement.scrollTop=0" driver.execute_script(js) ''' ''' from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") driver.find_element_by_id("kw").send_keys("selenium") # 搜索 driver.find_element_by_id("su").click() time.sleep(3) js="var q=document.documentElement.scrollTop=10000" # 將頁面滾動條拖到底部 driver.execute_script(js) time.sleep(3) js_ = "var q=document.documentElement.scrollTop=0" # 將頁面滾動條拖到頂部 driver.execute_script(js_) time.sleep(3) driver.quit() ''' # 6.9、窗口截圖 # driver.get_screenshot_as_file() ''' from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") try: driver.find_element_by_id("kw_error").send_keys("selenium") driver.find_element_by_id("su").click() except: driver.get_screenshot_as_file("E:/baidu_error.jpg") driver.quit() ''' # 6.9、關閉窗口 # driver.close() # 7.0、驗證碼處理 ''' 去掉驗證碼 設置萬能碼 驗證碼識別技術 記錄cookie '''
總結
以上是生活随笔 為你收集整理的浏览器的各种操作 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。