您好,登錄后才能下訂單哦!
怎么在python中利用selenium與chrome實現一個物車秒殺自動結算功能?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
一、所需環境
Selenium
Selenium是一個開源的自動化測試工具。原理是通過模擬瀏覽器操作,還支持java,python,c#,php等主流的編程語言。
一般爬蟲也支持Selenium,一些經過js渲染的內容和數據和ajax異步請求出來的數據通過Selenium就能很簡單直觀的爬取下來。但是Selenium的缺點也是顯而易見的,相比于正則的匹配Selenium要加載瀏覽器以及更多的東西,他的執行速度比其他模塊慢很多,所以若要保證速度,能不用Selenium就不要用Selenium吧。
web測試自動化:不同于單元測試和接口測試,web測試的自動化更加貼近于人的行為,通過對用戶點擊行為和文本輸入行為等進行模擬,當web自動化登錄成功后,就去獲取這個數據進行斷言。斷言如果相等,測試通過;如果不相等,測試失敗。用戶可以看到某一項操作是否真的產生了,但是程序只能通過判斷某些“證據”去判斷之前的行為是否真的生效。
下載Selenium并安裝
安裝對應瀏覽器的驅動程序 WebDriver
驅動程序要和自己電腦上的瀏覽器版本相對應,比如我使用的chrome瀏覽器是72版本的,就要下載ChromeDriver2.46這個版本。
下載解壓之后配置環境變量Path即可。 Mac對應的環境變量配置可以參考這位老哥的文章進行配置
#!/usr/bin/env python # -*- coding: utf-8 -*- from selenium import webdriver import datetime import time def login(): # 打開淘寶登錄頁,并進行掃碼登錄 browser.get("https://www.taobao.com") time.sleep(3) if browser.find_element_by_link_text("親,請登錄"): browser.find_element_by_link_text("親,請登錄").click() print("請在15秒內完成掃碼") time.sleep(15) browser.get("https://cart.taobao.com/cart.htm") time.sleep(3) now = datetime.datetime.now() print('login success:', now.strftime('%Y-%m-%d %H:%M:%S')) def buy(times, choose): is_buyed = False # 點擊購物車里全選按鈕 if choose == 2: print("請手動勾選需要購買的商品") while True: now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') print('現在時間:', now) # 對比時間,時間到的話就點擊結算 if now > times: if choose == 1: while True: try: if browser.find_element_by_id("J_SelectAllcbx1"): browser.find_element_by_id("J_SelectAllcbx1").click() print('嘗試全選') break except: print("找不到全選按鈕") # 點擊結算按鈕 try: if browser.find_element_by_id("J_Go"): browser.find_element_by_id("J_Go").click() print("結算成功") except: pass while True: try: if browser.find_element_by_link_text('提交訂單') and is_buyed == False: browser.find_element_by_link_text('提交訂單').click() now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') print("搶購成功時間:%s" % now1) except: print("再次嘗試提交訂單") time.sleep(0.005) if __name__ == "__main__": times = input("請輸入搶購時間,格式如(2018-09-06 11:20:00.000000):") # 時間格式:"2018-09-06 11:20:00.000000" browser = webdriver.Chrome() browser.maximize_window() login() choose = input("到時間自動勾選購物車請輸入“1”,否則輸入“2”:") buy(times, choose)
關于怎么在python中利用selenium與chrome實現一個物車秒殺自動結算功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。