当前位置: 首页 > article >正文

C# 自动化抢购脚本:基于商品链接的实现方案

实现思路:

  1. 启动参数options.AddArgument("start-maximized"); 用于启动浏览器时使其窗口最大化。
  2. 创建 EdgeDriver 实例EdgeDriver driver = new EdgeDriver(options); 用于初始化 WebDriver 实例。
  3. 导航到 URLdriver.Navigate().GoToUrl("请输入你的商品的URL"); 导航到指定的商品页面。
  4. 创建 WebDriverWait 实例WebDriverWait Waittime = new WebDriverWait(driver, TimeSpan.FromSeconds(3600)); 用于设置等待时间。
  5. 等待并获取“加入购物车”按钮Waittime.Until(ExpectedConditions.ElementToBeClickable(By.LinkText("加入购物车"))); 等待按钮变为可点击并点击。
  6. 等待并获取“立即购买”按钮: 使用 XPath 查找具有类似文本的按钮。
  7. 等待并获取“去结算”按钮: 等待并点击“去结算”按钮。
  8. 退出驱动driver.Quit(); 用于关闭浏览器并释放资源。根据需要可以启用这行代码。

一、首先引入以下这些包

二、网页标签元素自行修改,根据实际的标签名称来,也可以下载我DEMO直接使用

EdgeOptions options = new EdgeOptions();;
EdgeDriver driver;
private void Snapped()
{
    // 添加启动参数以使浏览器窗口最大化
    options.AddArgument("start-maximized");
    
    // 创建一个新的 EdgeDriver 实例
    EdgeDriver driver = new EdgeDriver(options);
    
    try
    {
        // 导航到指定的商品 URL
        driver.Navigate().GoToUrl("请输入你的商品的URL");
        
        // 创建一个 WebDriverWait 实例,设置最大等待时间为一个小时
        WebDriverWait Waittime = new WebDriverWait(driver, TimeSpan.FromSeconds(3600));
        
        try
        {
            // 等待并获取“加入购物车”按钮,直到它变为可点击
            IWebElement gowuche_btn = Waittime.Until(ExpectedConditions.ElementToBeClickable(By.LinkText("加入购物车")));
            
            // 点击“加入购物车”按钮
            gowuche_btn.Click();
        }
        catch (Exception ex)
        {
            // 如果未找到“加入购物车”按钮,记录错误消息
           Console.WriteLine("未找到加入购物车按钮,请检查");
        }

        try
        {
            // 创建另一个 WebDriverWait 实例,设置最大等待时间为一个小时
            WebDriverWait gowuchejiesuan_time = new WebDriverWait(driver, TimeSpan.FromSeconds(3600));
            
            // 等待并获取“立即购买”或类似的按钮,直到它变为可点击
            IWebElement actionBtn = gowuchejiesuan_time.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//a[contains(text(), '加入购物车') or contains(text(), '立即购买') or contains(text(), '立即抢购') or contains(text(), '抢购')]")));
            
            // 点击获取到的按钮
            actionBtn.Click();
        }
        catch (Exception ex)
        {
            // 如果遇到异常,记录错误消息
             Console.WriteLine(ex.Message);
        }

        try
        {
            // 等待并获取“去结算”按钮,直到它变为可点击
            IWebElement checkoutBtn = Waittime.Until(ExpectedConditions.ElementToBeClickable(By.LinkText("去结算")));
            
            // 点击“去结算”按钮
            checkoutBtn.Click();
        }
        catch (Exception ex)
        {
            // 如果遇到异常,记录错误消息
             Console.WriteLine(ex.Message);
        }
    }
    finally
    {
        // 退出驱动,释放资源(此处已被注释掉,可以根据需要启用)
        // driver.Quit();
    }
}


http://www.kler.cn/news/283758.html

相关文章:

  • 【杂谈】新能源和智能车
  • 在docker中安装skywalking + es
  • 一起搭WPF架构之浅写View界面按钮的进阶设计
  • 人工智能领域面试基础问题整理(二):什么是人工智能?
  • OpenCV小练习:人脸检测
  • LVS之net模式实验
  • MySQL空间管理:查询、优化与碎片清理
  • C#基础(1)复杂数据类型概述
  • 19050 牛牛打气球
  • Training language models to follow instructionswith human feedback
  • 【iOS】iOS中简单的网络请求
  • Openai api via azure error: NotFoundError: 404 Resource not found
  • 优化系统性能:深入探讨Web层缓存与Redis应用的挑战与对策
  • 虹科技术|全新Linux环境PCAN驱动程序发布!CAN/CAN FD通信体验全面升级!
  • C# 什么是属性
  • Linux操作系统在虚拟机VM上的安装【CentOS版本】
  • 深入解析 Maven 子父模块的依赖管理
  • Java 面试题:HTTP版本演变--xunznux
  • Web-gpt
  • UR5e Gazebo仿真
  • Go 服务调试精解
  • 备战秋招60天算法挑战,Day28
  • 个人旅游网(1)——数据库表详解
  • 爬虫入门学习
  • Java Web —— 第十天(AOP切面编程)
  • Dxf文件中多段线弧线的计算
  • 三星与海力士发力决战HBM4
  • 【知识】缓存类型和策略
  • 数据合规性分析:守护信息安全的关键防线
  • 原生开发柱状图