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

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{// 导航到指定的商品 URLdriver.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.mrgr.cn/news/10215.html

相关文章:

  • DrawDB数据库设计工具本地部署结合内网穿透实现团队异地协作办公
  • docker 里 oneapi 启动失败:failed to get gpt-3.5-turbo token encoder
  • 实时图形识别的实现:模板匹配与几何特征方法的对比
  • 书生大模型实战营(第三期闯关大挑战)- 进阶岛 第五关 茴香豆:企业级知识库问答工具
  • 预约上门服务小程序开发源码搭建流程
  • 【python】如何通过Python中的http.server搭建文件上传下载服务
  • C++第十二弹 -- STL之list模拟实现
  • Windows环境下,使用bat脚本配置本地域名解析(含新增、修改、清理)
  • 飞速(FS)400G SR4光模块概述
  • day5JS-String常用方法和Math常用方法
  • FTP服务器(服务名vsftpd,端口tcp/20和tcp/21)
  • 网络安全概述
  • Python爬虫框架Scrapy应用实战解析
  • C++11特性-智能指针
  • K8S集群中驱逐节点
  • C 06 编译4阶段
  • TCP/IP和SNMP
  • 图了个图 - 目前最满意的AI修图软件
  • Windows环境如何安装maven并配置IDEA
  • C++系列-继承方式