• 【Selenium】利用Cookies登录京东并添加商品至购物车以及结算


    import json
    import unittest
    from time import sleep
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    def get_JD_cookies():
        browser = webdriver.Firefox()
        browser.maximize_window()
        browser.implicitly_wait(2)
    
        url = "https://www.jd.com"
        browser.get(url)
    
        # 登陆前
        before_login = browser.get_cookies()
    
        # 定位,点击“请登录”
        browser.find_element_by_class_name("link-login").click()
        # browser.find_element_by_class_name("link-logout").click()
        sleep(5)
        # 定位,点击“账户登录”
        browser.find_element_by_link_text("账户登录").click()
        sleep(5)
        # 定位,输入账号
        username = browser.find_element_by_id("loginname")
        username.clear()
        username.send_keys(input("用户名:"))
        # 定位,输入密码
        password = browser.find_element_by_id("nloginpwd")
        password.clear()
        password.send_keys(input("密码:"))
        sleep(5)
        # 定位,点击登录
        browser.find_element_by_id("loginsubmit").click()
    
        sleep(20)
        # 人机验证
        # whole = browser.find_element_by_class_name("JDJRV-bigimg")
        # piece = browser.find_element_by_class_name("JDJRV-smallimg")
        # slider = browser.find_element_by_class_name("JDJRV-slide-inner JDJRV-slide-btn")
    
        # 登陆后
        after_login = browser.get_cookies()
    
        # 获取 cookies
        cookies = browser.get_cookies()
        # 将 cookies 写入文件
        with open("cookies.txt","w")  as f:
            json.dump(cookies, f)
    
    
    class JDBuy(unittest.TestCase):
    
        @classmethod
        def setUpClass(cls):
            print("setUpClass被执行")
    
        @classmethod
        def tearDownClass(cls):
            print("tearDownClass被执行")
    
        def setUp(self):
            print("Begin testing...")
            self.browser = webdriver.Firefox()
            self.url = "https://www.jd.com"
            self.browser.maximize_window()
            self.browser.implicitly_wait(2)
            # 访问网站,清空旧cookies信息
            self.browser.get(self.url)
            sleep(5)
            self.browser.delete_all_cookies()
    
            # 加载 cookies信息
            with open("cookies.txt","r") as f:
                cookies = json.load(f)
                for cookie in cookies:
                    self.browser.add_cookie(cookie)
    
            # 验证是否登录成功
            self.browser.get(self.url)
    
        def tearDown(self):
            print("End testing...")
            self.browser.quit()
    
        def testAdd2Cart(self):
            browser = self.browser
            # 定位搜索框 输入 "iPhone"
            browser.find_element_by_id("key").send_keys("iPhone")
            browser.find_element_by_id("key").send_keys(Keys.RETURN)
            # browser.find_element_by_xpath("//button[@class='button']/i").click()
            # 定位  点击搜索按钮
            sleep(5)
            browser.find_element_by_class_name("gl-item").click()
            sleep(5)
            nwh = browser.window_handles[-1]
            browser.switch_to.window(nwh)
            browser.find_element_by_id("InitCartUrl").click()
            sleep(5)
            self.assertIn("商品已成功加入购物车", browser.title)
            # assert "商品已成功加入购物车" in browser.title
    
        def testBilling(self):
            browser = self.browser
            # 打开购物车
            browser.find_element_by_xpath("//div[@class='cw-icon']/a").click()
            sleep(5)
            nwh = browser.window_handles[-1]
            browser.switch_to.window(nwh)
            browser.find_element_by_link_text("去结算").click()
            sleep(5)
            self.assertIn("订单结算页", browser.title)
            sleep(2)
            browser.find_element_by_id("order-submit").click()
            sleep(2)
            self.assertIn("收银台", browser.title)
    
    
    if __name__ == "__main__":
        # get_JD_cookies()
        unittest.main()
    
    
  • 相关阅读:
    430flash的操作
    430单片机之定时器A功能的大致介绍
    MSP430看门狗
    430之通用异步串口通信模块
    430的启动,I/O中断
    Msp430概述
    烦躁
    12864密码锁
    单片机的动手实践篇--51单片机玩转12864
    【CSS】font样式简写(转)- 不是很建议简写
  • 原文地址:https://www.cnblogs.com/4thirteen2one/p/11456690.html
Copyright © 2020-2023  润新知