一、安裝和使用selenium
1、安裝selenium可以使用pip,pip install selenium即可。安裝後,我們可以使用selenium進行瀏覽器自動化操作,進入一個網址、填寫表格、點擊某個元素、獲取結果等等都可以輕鬆實現。
2、使用selenium的第一步是導入selenium庫。通常情況下,使用selenium時會導入selenium.webdriver.Chrome模塊或selenium.webdriver.Firefox模塊,代表使用Chrome或Firefox瀏覽器進行操作。
3、使用selenium時可以設置瀏覽器不自動關閉,這樣便於我們手動斷點調試。代碼如下:
from selenium import webdriver browser = webdriver.Chrome() browser.get("http://www.baidu.com") browser.maximize_window() # do something here browser.quit() # 關閉瀏覽器
二、使用selenium進行瀏覽器自動化操作
1、selenium支持對各類頁面元素進行定位,通過id、name、class等屬性進行元素定位。比如下面的代碼就是通過id定位並點擊某個元素:
button = browser.find_element_by_id('buttonId') button.click()
2、使用selenium中的Keys來控制鍵盤按鍵,可進行複製、粘貼、刪除、切換標籤頁等操作。例如,模擬Ctrl+A全選,Ctrl+C複製,Ctrl+V黏貼的操作可以如下所示:
from selenium.webdriver.common.keys import Keys element.send_keys(Keys.CONTROL, 'a') # 全選 element.send_keys(Keys.CONTROL, 'c') # 複製 element.send_keys(Keys.CONTROL, 'v') # 黏貼
3、使用selenium進行截圖都很方便,只需調用瀏覽器對象的截圖方法即可。截圖可以是整個頁面,也可以是某個元素。比如下面的代碼就是進行整個頁面的截圖,並將截圖保存至指定路徑。
browser.get_screenshot_as_file('D:/screenshot.png')
三、selenium控制瀏覽器窗口大小
1、selenium的瀏覽器窗口大小可以有多種方式控制,最常用的是將瀏覽器最大化或設置指定的窗口大小。例如下面的代碼即將瀏覽器窗口最大化:
browser.maximize_window()
2、也可以使用set_window_size方法來設定瀏覽器窗口大小。下面的代碼就是將瀏覽器窗口設定為指定大小:
browser.set_window_size(x,y)
四、使用selenium進行表格操作
1、selenium可以通過table標籤或者class/id屬性進行表格操作。我們可以讀取某一行或某一列的數據,也可以通過坐標讀取指定單元格的內容。例如下面的代碼是通過xpath語法讀取某一單元格的內容:
element = driver.find_element_by_xpath("//table/tr[1]/td[1]")
2、對於表格中的checkbox或radiobox,selenium可以通過選中或取消選中對表格進行操作。代碼如下:
checkbox = browser.find_element_by_id('checkBoxId') checkbox.click()
五、selenium等待頁面加載完成
1、selenium在加載頁面時,有時需要等待一段時間,等到頁面加載完成再進行操作。這種等待不是固定時間,也不是等到頁面狀態通過某種方式判斷為加載完成,而是監控頁面狀態並等待一定時間或監控到頁面狀態變化時再進行下一步。比較常見的三種等待方式是隱式等待、顯式等待和混合等待。下面我們分別介紹這三種方式。
1、隱式等待
在設置隱式等待時,一旦開始等待,就會將等待時間從開始到操作完成的時間一起計算。如果在等待期間一旦發現該元素就立即返回,不必等待整個等待時間。例如,下面的代碼將隱式等待設置為10秒,並查找id為”id”的元素:
browser.implicitly_wait(10) element = browser.find_element_by_id('id')
2、顯式等待
在使用顯式等待時,我們需要從selenium.webdriver.support.ui模塊中導入WebDriverWait和expected_conditions類。WebDriverWait是等待類,可以等待指定的元素在指定的時間內出現。expected_conditions類主要包含各種等待條件。下面的代碼就是等待元素出現,並執行相應的操作:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC element = WebDriverWait(browser, 10).until( EC.presence_of_element_located((By.ID, "myDynamicElement")) )
六、selenium清空輸入框內容
1、當我們需要進行多次輸入或修改輸入內容時,需要用到清空輸入框內容操作。例如,下面的代碼就是對輸入框先進行清空再輸入:
input_box = browser.find_element_by_id('my_id') input_box.clear() input_box.send_keys('content')
總結
本文主要講解了pip selenium的詳細闡述內容,介紹了selenium的安裝和使用、瀏覽器自動化操作、控制瀏覽器窗口大小、表格操作、等待頁面加載完成、清空輸入框內容等多個方面,都有詳細的代碼示例。selenium在自動化測試和爬蟲方面有着廣泛的應用,對於需要頻繁進行網頁操作的程序員來說,掌握selenium非常有必要。
原創文章,作者:CTNGN,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/366256.html