selenium之web自動化模擬操作(窗口,鼠標,鍵盤,js)


selenium自動化在進行瀏覽器驅動的同時,會有一些相關的模擬行為的操作,例如窗口的操作,鼠標的操作,鍵盤的操作,javascript相關操作!

 

窗口操作

首先我們在操作瀏覽器的時候,會進行一下窗口的放大與縮小,關閉瀏覽器,退出瀏覽器,后退瀏覽器等相關操作!

driver = webdriver.Chrome()    # 打開谷歌瀏覽器driver=webdriver.Firefox()       # 打開火狐瀏覽器driver.get()       # 打開某網頁,括號里放url地址driver.refresh() #刷新頁面driver.back() # 后退上個頁面driver.forward() # 前進下個頁面driver.close() # 關閉當前窗口driver.quit() # 退出瀏覽器driver.save_screenshot('./01.png')    # 截圖當前頁面()中存放保存圖片的路徑driver.current_url # 獲取當前頁面urldriver.title # 獲取當前頁面標題hands = driver.window_handles # 獲取當前窗口列表,獲取額是個list的類型driver.switch_to.window(hands[0])      #切換到第一個窗口(hands[0])下標切換driver.switch_to.window(hands[-1]) #切換最新窗口alert = driver.switch_to_alert()       # 獲取頁面提示彈窗(確定,取消彈窗)alert.text # 獲取警告對話框內容alert.accept() # 確認彈窗alert.dismiss()      #取消彈窗# 當頁面存在frame或iframe標簽時,會存在頁面元素定位不到,此時需要切換famedriver.switch_to.frame('') # 切換frame標簽()中放frame的id,class,name都可以driver.implicitly_wait(X)   # 隱式等待,頁面全部加載完成后等待X秒from selenium.webdriver.support.wait import WebDriverWait # 導入顯示等待包WebDriverWait(self.driver,5,0.5).until(lambda x:x.find_element_by_xpath(""),"返回超時錯誤信息")    # 顯示等待driver.set_page_load_timeout(10)     # 全局的頁面加載時間

鼠標操作
from selenium.webdriver.common.action_chains import ActionChains  導包

雙擊:double_click

拖拽: drag_and_drop

點擊左鍵不松開:click_and_hold

松開左鍵: release

移到某個元素:move_to_element

以上鼠標操作模擬基本夠我們在項目中使用,注意ActionChains包最后必須加上perform()方法才可展示出效果,具體實例:
move1 = driver.find_element_by_xpath('//*[@id="dragger"]')  # 定義一個元素
move2 = driver.find_element_by_xpath('/html/body/div[2]')   # 定義第二個元素ActionChains(driver).move_to_element(move1).perform()    # 移動鼠標至元素move1ActionChains(driver).drag_and_drop(move1,move2).perform()    # 將鼠標move1元素,拖拽至move2的元素上

鍵盤操作:

使用鍵盤操作時,需要借助send_keys()來模擬操作。
Key.CONTROL就是我們鍵盤上的Ctrl鍵

 

from selenium.webdriver.common.keys import Keys     導入包

send_keys(Key.CONTROL,'a') #全選(Ctrl+A)

send_keys(Key.CONTROL,'c') #復制(Ctrl+C)

send_keys(Key.CONTROL,'x') #剪切(Ctrl+X)

send_keys(Key.CONTROL,'v') #粘貼(Ctrl+V)

常用的非組合鍵:
回車鍵 Keys.ENTER
刪除鍵 Keys.BACK_SPACE
空格鍵 Keys.SPACE
制表鍵 Keys.TAB
回退鍵 Keys.ESCAPE
刷新鍵 Keys.F5

以下實例:

from selenium.webdriver.common.keys import Keys

from selenium import webdriver

 

driver = webdriver.Chrome()#打開Chrome瀏覽器

driver.get('https://www.baidu.com/')#打開百度

 

driver.find_element_by_xpath('//input[@id="kw"]').send_keys('零基礎Python自動化',Keys.ENTER) #輸入文本並回車操作

 

javascript操作:

開發者工具打開控制台consle編寫js語言,window就是一個對象:表示瀏覽器窗口

1,打開新的瀏覽器窗口:window.open(url)

2,瀏覽器內部寬度window.innerWidth

3,瀏覽器內部高度window.innerHeight

4,瀏覽器整體寬度window.outerWidth

5,瀏覽器整體高度window.outerHeight

6,瀏覽器滾動條:window.scrollTo(0,1000) ! window.By(0,1000)

7,非瀏覽器類型的滾動條:document.getElementsById(id)[0].scrollTop=‘1000'

document:表示當前頁面對象

1.獲取當前標題:document.title

2.輸入文本值:document.getElementsById(id)[0].value=" "

3.操作標簽document.getElementsById(id)[0].click()

4.更改屬性:

 

document.getElementById('vip').style.visibility='visible'

 

我們如何使用python去操作js文本呢,driver.execute_script() ,括號里面輸入js文本

driver.execute_script('window.open("https://www.baidu.com/") ')

當我們項目中的時候難免會遇到當前頁面過長,看不到下面內容的時候 我們需要下滑窗口滾動條到指定位置,方便我們進行查看定位:

element = driver.find_element_by_xpath('//*[@id="dragger"]')  # 定義一個元素

 

driver.execute_script('arguments[0].scrollIntoView();',element)   # 下滑到指定元素

 

 

selenium之web自動化模擬操作(窗口,鼠標,鍵盤,js)

李二狗的妖孽人生  零基礎Python自動化  今天
 

selenium自動化在進行瀏覽器驅動的同時,會有一些相關的模擬行為的操作,例如窗口的操作,鼠標的操作,鍵盤的操作,javascript相關操作!

 

窗口操作

首先我們在操作瀏覽器的時候,會進行一下窗口的放大與縮小,關閉瀏覽器,退出瀏覽器,后退瀏覽器等相關操作!

driver = webdriver.Chrome()    # 打開谷歌瀏覽器driver=webdriver.Firefox()       # 打開火狐瀏覽器driver.get()       # 打開某網頁,括號里放url地址driver.refresh() #刷新頁面driver.back() # 后退上個頁面driver.forward() # 前進下個頁面driver.close() # 關閉當前窗口driver.quit() # 退出瀏覽器driver.save_screenshot('./01.png')    # 截圖當前頁面()中存放保存圖片的路徑driver.current_url # 獲取當前頁面urldriver.title # 獲取當前頁面標題hands = driver.window_handles # 獲取當前窗口列表,獲取額是個list的類型driver.switch_to.window(hands[0])      #切換到第一個窗口(hands[0])下標切換driver.switch_to.window(hands[-1]) #切換最新窗口alert = driver.switch_to_alert()       # 獲取頁面提示彈窗(確定,取消彈窗)alert.text # 獲取警告對話框內容alert.accept() # 確認彈窗alert.dismiss()      #取消彈窗# 當頁面存在frame或iframe標簽時,會存在頁面元素定位不到,此時需要切換famedriver.switch_to.frame('') # 切換frame標簽()中放frame的id,class,name都可以driver.implicitly_wait(X)   # 隱式等待,頁面全部加載完成后等待X秒from selenium.webdriver.support.wait import WebDriverWait # 導入顯示等待包WebDriverWait(self.driver,5,0.5).until(lambda x:x.find_element_by_xpath(""),"返回超時錯誤信息")    # 顯示等待driver.set_page_load_timeout(10)     # 全局的頁面加載時間

 

鼠標操作

from selenium.webdriver.common.action_chains import ActionChains 導包雙擊:double_click拖拽: drag_and_drop點擊左鍵不松開:click_and_hold松開左鍵: release移到某個元素:move_to_element

以上鼠標操作模擬基本夠我們在項目中使用,注意ActionChains包最后必須加上perform()方法才可展示出效果,具體實例:

move1 = driver.find_element_by_xpath('//*[@id="dragger"]') # 定義一個元素move2 = driver.find_element_by_xpath('/html/body/div[2]')   # 定義第二個元素ActionChains(driver).move_to_element(move1).perform()    # 移動鼠標至元素move1ActionChains(driver).drag_and_drop(move1,move2).perform()    # 將鼠標move1元素,拖拽至move2的元素上

 

鍵盤操作:

使用鍵盤操作時,需要借助send_keys()來模擬操作。
Key.CONTROL就是我們鍵盤上的Ctrl鍵

from selenium.webdriver.common.keys import Keys 導入包send_keys(Key.CONTROL,'a') #全選(Ctrl+Asend_keys(Key.CONTROL,'c') #復制(Ctrl+Csend_keys(Key.CONTROL,'x') #剪切(Ctrl+Xsend_keys(Key.CONTROL,'v') #粘貼(Ctrl+V

常用的非組合鍵:
回車鍵 Keys.ENTER
刪除鍵 Keys.BACK_SPACE
空格鍵 Keys.SPACE
制表鍵 Keys.TAB
回退鍵 Keys.ESCAPE
刷新鍵 Keys.F5

 以下實例:

 
         
from selenium.webdriver.common.keys import Keysfrom selenium import webdriver
driver = webdriver.Chrome()#打開Chrome瀏覽器driver.get('https://www.baidu.com/')#打開百度driver.find_element_by_xpath('//input[@id="kw"]').send_keys('零基礎Python自動化',Keys.ENTER) #輸入文本並回車操作
 
         

javascript操作:

開發者工具打開控制台consle編寫js語言,window就是一個對象:表示瀏覽器窗口

1,打開新的瀏覽器窗口:window.open(url)

2,瀏覽器內部寬度window.innerWidth

3,瀏覽器內部高度window.innerHeight

4,瀏覽器整體寬度window.outerWidth

5,瀏覽器整體高度window.outerHeight

6,瀏覽器滾動條:window.scrollTo(0,1000) ! window.By(0,1000)

7,非瀏覽器類型的滾動條:document.getElementsById(id)[0].scrollTop=‘1000'

document:表示當前頁面對象

1.獲取當前標題:document.title

2.輸入文本值:document.getElementsById(id)[0].value=" "

3.操作標簽document.getElementsById(id)[0].click()

4.更改屬性:

document.getElementById('vip').style.visibility='visible'

 

我們如何使用python去操作js文本呢,driver.execute_script() ,括號里面輸入js文本

driver.execute_script('window.open("https://www.baidu.com/") ')

當我們項目中的時候難免會遇到當前頁面過長,看不到下面內容的時候 我們需要下滑窗口滾動條到指定位置,方便我們進行查看定位:

element = driver.find_element_by_xpath('//*[@id="dragger"]') # 定義一個元素driver.execute_script('arguments[0].scrollIntoView();',element)   # 下滑到指定元素


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM