482
瀏覽器簡單基本操作
打開瀏覽器+Get網頁
from selenium import webdriver
driver = webdriver.Chrome('./chromedriver')
driver.get("https://www.facebook.com")
上一頁+下一頁+重新載入
#上一頁
driver.back()
#下一頁
driver.forward()
#重新載入
driver.refresh()
滾動網頁
#滑到這次載入的底部,到底部後再往下滑,重複5次
for i in range(5):
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(1)
Selenium定位網站內容
如同人瀏覽網頁時,是針對不同的元素操作,以下是常見的指令
定位指令
- find_element_by_id
使用屬性 ID 定位,這是最推薦的定位方法,一個文本裡任何id只會出現一次 - find_element_by_name
使用屬性 name 定位 - find_element_by_class_name
使用屬性 class 定位 - find_element_by_link_text
針對連結標籤(<a href=…>…</a>) - find_element_by_xpath
使用html的語法路徑定位
操作指令
#A是定位位置
#點擊
A.click()
#B是可輸入內容位置
#清空內容
B.clear()
B.send_keys('123')
網站等待載入指令
因為網站載入需要時間,需要給予緩存時間,等待所有東西都載入才可查找、定位或操作。
方法一 : timesleep
比較簡單方式就是在操作前加上timesleep,但因為每個網站載入時間長短不一,這並非最優解。
方法二 : 套件WebDriverWait
"""
格式如下,
WebDriverWait(瀏覽器, 最久等待時間).until(
EC.presence_of_element_located((By.某個方法, 方法的內容))
)
"""
username = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.NAME, "username"))
)
