每逢双十一、618是不是有小伙伴总是感叹自己手速不如人呢?明明喜欢的东西下一秒就售罄了,不要怀疑自己的手速,有时候你不知道和你一起下单的是人还是脚本哦。今天我给大家用java写一个简单的秒杀脚本,我们要用魔法打败魔法!话不多说,说干就干。 下载浏览器驱动 首先,我们需要知道,java脚本如果需要控制浏览器是需要一个浏览器驱动的,这里我使用的是Chrome浏览器,我们先查看Chrome的版本,在浏览器右上角 点击三个点图标-->帮助-->关于Google Chrome 可以查看Chrome的版本。这里可以看出我的版本是103.0.5060.114。 然后访问网站 http://chromedriver.storage.googleapis.com/index.html下载对应的Chrome的驱动。例如找到103对应的版本点进去,windows使用的是箭头所示的驱动,点击下载。(这里需要提醒一下,访问这个网站需要科学上网,不会科学上网的小伙伴也不用担心,我会把几个常用版本的驱动和一会儿要用的源码放在云盘,有需要可以在评论区自取) 下载完成之后是一个压缩包,我们把它解压,就得到了一个exe程序。 开始写脚本 上面的工作做好之后我们开始写脚本,这里我先新建一个maven项目。如下图,项目名叫做miaosha,点击创建即可。 接下来引入依赖,如下脚本源码: package com.miaosha; import org.openqa.selenium.By; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.interactions.Actions; import java.text.SimpleDateFormat; import java.util.Date; public class miaosha { public static void main(String[] args) throws Exception{ //准备驱动 System.setProperty("webdriver.chrome.driver","G:driverchromedriver.exe"); //0、设置秒杀时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSSSSSSSS"); Date date = sdf.parse("2022-05-15 14:07:00 000000000"); //1、打开浏览器 ChromeDriver browser = new ChromeDriver(); Actions actions = new Actions(browser); //2、输入网址 browser.get("https://www.taobao.com"); Thread.sleep(3000); //3、点击登录 browser.findElement(By.linkText("亲,请登录")).click(); Thread.sleep(2000); //4、扫码登录,线程休息5秒 browser.findElement(By.className("icon-qrcode")).click();//扫码登录 Thread.sleep(5000); //5、进入购物车页面 browser.get("https://cart.taobao.com/cart.htm"); Thread.sleep(3000); //6、点击选择第一个按钮 browser.findElement(By.xpath("//*[@id="J_Order_s_236958737_1"]/p[1]/p/p/label")).click(); Thread.sleep(2000); //7、循环检查结算按钮,如果倒计时结束,迅速点击 while (true){ //当前时间 Date now = new Date(); System.out.println(now); if(now.after(date)){ if(browser.findElement(By.linkText("结 算")).isEnabled()){ browser.findElement(By.linkText("结 算")).click(); System.out.println("结算成功"); break; } } } System.out.println("抢购成功"); } } 这里我主要分了一个准备阶段和7个步骤,我们一个一个来看: 首先是 准备阶段 ,我们把刚才下载好的驱动路径复制出来,设置成webdriver.chrome.driver的属性值。 第0步 是设置秒杀时间,也就是说我们秒杀的一个开始时间,拿6月18号0点秒杀来举例,我们只需要把时间设置成6月18号0点之前就可以,比如说6月17号23点50。 第1步 ,打开浏览器。 第2步 ,输入淘宝的网址,也可以是其他电商网站,我这里用淘宝举例。 第3步 ,点击登录,这一步的操作是脚本找到页面上"亲,请登录"的字样点击。 第4步 ,扫码登录,这一步脚本会点击图中的二维码,我们然后线程休息5秒,我们需要在5秒内扫码登录,时间可以控制,如果你网速好的话可以把时间调短。 第5步 ,进入购物车页面,这时需要我们提前将想要秒杀的产品放在购物车里面。我这里提前加入了一个小商品。 第6步 ,点击选择第一个按钮,这一步的作用是脚本点击第一个商品的复选框,这里需要我们自己找到商品复选框的元素,我们先看这一行代码。 browser.findElement(By.xpath("***")).click(); 代码中的***就是我们需要根据自己的情况填入自己商品的一个id号,找的步骤也很简单。如果是前端的小伙伴可以轻易找到,具体步骤是在页面点击鼠标右键,点击 检查 。 在弹出开发工具中点击左上角箭头, 如图所示 。 然后点击 店铺的复选框 。 然后就自动定位到了店铺元素,按照步骤鼠标右键,最后 copy Xpath ,复制好的内容粘贴到上面的***所在的地方就可以了! 第7步 就是脚本自动执行了,它会轮询结算按钮,如果结算按钮一旦可以点击则立刻点击结算,这样就脚本就完成了,是不是比我们自己点击快多了! 我把源码放在评论区,感兴趣的小伙伴可以试试了! org.seleniumhq.selenium selenium-java3.141.59