Annuaire d'articles
déclarer
Ce blog ne fournit aucun programme côté serveur, ni aucun logiciel instantané payant.
Ce blog est uniquement destiné à l'apprentissage des outils d'automatisation du sélénium.
Si vous violez les droits et intérêts légitimes d'une entreprise, veuillez m'envoyer un message privé et le code correspondant sera supprimé dès que possible.
avant-propos
Y a-t-il des amis qui soupirent toujours que leurs mains ne sont pas aussi rapides que les autres pendant les vacances ? Les choses que vous aimez clairement seront épuisées dans la seconde qui suit. Ne doutez pas de votre rapidité. Parfois, vous ne savez pas si vous passez une commande avec un humain ou un script.
Aujourd'hui, je vais partager avec vous une version python du script pour acheter des gâteaux de lune. Il faut utiliser la magie pour vaincre la magie ! Ne dis pas grand chose, fais-le.
principe
Ce que je veux utiliser aujourd'hui, c'est une bibliothèque d'outils de test : Selenium
Selenium est un outil de test automatisé pour tester des sites Web. Il prend en charge divers navigateurs, notamment Chrome, Firefox, Safari et d'autres navigateurs d'interface grand public, ainsi que les navigateurs sans interface phantomJS.
Il prend en charge plusieurs systèmes d'exploitation tels que Windows, Linux, IOS, Android, etc.
Aujourd'hui, nous l'utilisons pour automatiser l'achat de gâteaux de lune. En fait, nous utilisons cet outil pour "simuler" les opérations correspondantes du navigateur humain, telles que la connexion, la sélection d'articles dans le panier, la passation d'une commande d'achat. , etc.
Installer Sélénium
voie 1
pip install Selenium
voie 2
Si l'installation de pip échoue, vous pouvez utiliser l'outil pycharm pour télécharger
Les sources de données suivantes peuvent être utilisées en Chine :
Sélectionnez une source de données disponible pour Selenium
Installer le pilote du navigateur
Télécharger
Selenium3.x appelle le navigateur doit avoir un fichier de pilote webdriver, sélectionnez le chrome système correspondant suivant à télécharger pour télécharger le
fichier de pilote Chrome
Configurer les variables d'environnement
Poste de travail -> Propriétés -> Paramètres système -> Avancé -> Variables d'environnement -> Variables système -> Chemin,
ajoutez le répertoire dans lequel vous avez téléchargé le fichier chromexxx.zip à la valeur Chemin. Par exemple : Champ de chemin F:\download
développement de code
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# 2022/09/03
from selenium import webdriver
import datetime
import time
class Seckill():
def __init__(self,startTime, choose):
self.startTime = startTime
self.choose = choose
def login(self,browser):
browser.get("https://www.taobao.com")
time.sleep(2)
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('登陆成功:', now.strftime('%Y-%m-%d %H:%M:%S'))
def buy(self,browser):
if self.choose == 2:
print("请手动在浏览器中勾选需要秒杀的商品")
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
# 对比时间,时间到的话就点击结算
if now > self.startTime:
if self.choose == 1:
while True:
try:
if browser.find_element_by_id("J_SelectAll2"):
browser.find_element_by_id("J_SelectAll2").click()
break
except:
print("error : cant find buy button")
# 点击结算按钮
while True:
try:
if browser.find_element_by_link_text("结 算"):
browser.find_element_by_link_text("结 算").click()
print("结算成功")
break
except:
pass
while True:
try:
if browser.find_element_by_link_text('提交订单'):
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.01)
def main():
pkTime = input("请输入秒杀时间,格式如(2022-09-03 15:40:00.000000):")
choose = int(input("到时间自动勾选购物车请输入“1”,否则输入“2”:"))
browser = webdriver.Chrome()
browser.maximize_window()
sk = Seckill(pkTime, choose)
# step1: 登陆
sk.login(browser)
# step2: 购买
sk.buy(browser)
if __name__ == "__main__":
main()
test
请输入抢购时间,格式如(2022-09-03 15:40:00.000000):2022-09-03 16:17:00.000000
到时间自动勾选购物车请输入“1”,否则输入“2”:1
请在15秒内完成扫码
登陆成功: 2022-09-03 16:14:45
结算成功
再次尝试提交订单
再次尝试提交订单
再次尝试提交订单
再次尝试提交订单
再次尝试提交订单
再次尝试提交订单
再次尝试提交订单
抢购成功时间:2022-09-03 16:17:15.498106
Après avoir entré l'heure d'achat de panique, l'interface du navigateur pour les tests apparaîtra automatiquement et s'adaptera automatiquement à l'interface de connexion. À ce stade, vous devez vous connecter par vous-même :
après vous être connecté, passez au panier :
si vous choisissez de vérifier automatiquement le panier, vous ne pourrez pas le faire. Vous devez le vérifier manuellement, et attendre que le programme le vérifie de lui-même (il n'est pas recommandé de choisir la vérification automatique), il est
recommandé de choisissez la vérification manuelle et
attendez jusqu'à ce que vous spécifiiez l'heure d'achat de panique, le script paniquera l'achat dans 1 milliseconde, passez la commande et passez à la page de paiement, en attendant votre paiement
Remarquer
Remarquer:
- Lors du test, veuillez entrer "1" lorsqu'il est temps de vérifier automatiquement le panier, sinon, entrez "2", cette option est préférable de choisir 2 (si vous choisissez 1 et que votre panier contient plus de produits, il sera automatiquement vérifiez-les tous.
- La sélection de l'heure d'accrochage est supérieure à l'heure actuelle