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();
    }
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lucky.帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值