Python《使用Selenium實現自動化操作》
阿新 • • 發佈:2020-12-20
一:準備工作
本文不貼任何圖片
1:先下載安裝Selenium ,在conda的環境下直接使用 conda install Selenium
2:檢視瀏覽器版本
在瀏覽器位址列輸入chrome://settings/help 則可以檢視瀏覽器版本
3:接著需要下載Chrome瀏覽器驅動,根據自己的瀏覽器版本,地址如下:
https://sites.google.com/a/chromium.org/chromedriver/downloads
驅動下載完後放置在一個目錄下,比如是:
二:測試整起
1:登入百度
from selenium import webdriver
chromeExeLoc = 'D:/software/chrome/chromedriver_win32/chromedriver.exe'
def test1():
browser = webdriver.Chrome(chromeExeLoc)
browser.get('https://www.baidu.com/')
if __name__ == "__main__":
test1()
2:找到W3C的python教程頁,並且在其輸入框輸入一串文字
from selenium import webdriver
from selenium. webdriver.common.keys import Keys
import time
chromeExeLoc = 'D:/software/chrome/chromedriver_win32/chromedriver.exe'
def test2():
driver = webdriver.Chrome(chromeExeLoc)
driver.get("https://www.runoob.com/python/python-tutorial.html")
# 找到對應的右上角最大的搜尋框,並且輸入一串文字
# elem = driver.find_element_by_id("s") # 方法一:根據id找到元素
elem = driver.find_element_by_xpath("//*[@id='s']") # 方法一:根據xpath找到元素,檢查元素,copy元素,cpoy xpath就可以得到。
elem.send_keys("I Love China!")
time.sleep(2)
elem.send_keys(Keys.RETURN)
print(driver.page_source)
if __name__ == "__main__":
test2()
3:開啟百度一下的首頁搜尋“星海千尋”
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
chromeExeLoc = 'D:/software/chrome/chromedriver_win32/chromedriver.exe'
def test3():
driver = webdriver.Chrome(chromeExeLoc)
driver.get("https://www.baidu.com")
# 找到百度搜索框,並且輸入“星海千尋”
elem = driver.find_element_by_xpath('//*[@id="kw"]')
elem.send_keys("星海千尋")
time.sleep(2)
elem.send_keys(Keys.RETURN)
time.sleep(20)
if __name__ == "__main__":
test3()
4:登入booking網站
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
chromeExeLoc = 'D:/software/chrome/chromedriver_win32/chromedriver.exe'
def loginBooking(username, password):
driver = webdriver.Chrome(chromeExeLoc)
driver.maximize_window()
driver.implicitly_wait(5)
driver.get("https://www.booking.com/index.zh-cn.html")
time.sleep(1)
# 模擬點選booking登入介面,之後會原地跳轉到新的介面
loginBtn = driver.find_element_by_id('b_tt_holder_1')
if loginBtn is None:
loginBtn = driver.find_element_by_id('b_tt_holder_2')
loginBtn.click()
time.sleep(1)
# 找到使用者名稱輸入框,輸入對應的使用者名稱
driver.find_element_by_xpath('//*[@id="username"]').send_keys(username)
driver.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div/div/div/div/div/div/form/div[3]/button').click()
time.sleep(1)
# 找到密碼輸入框,輸入對應的密碼
driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)
driver.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div/div/div/div/div/div/form/button').click()
time.sleep(1)
# 點選登入按鈕
driver.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()
time.sleep(20)
if __name__ == "__main__":
loginBooking('[email protected]', 'Jd12345678')