JAVA+Selenium2—淘宝秒杀购物车脚本

2022-08-24 16:53:00 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

JAVA Selenium2—淘宝秒杀购物车脚本

  • 前言
  • 准备
  • 代码

前言

对于自己近期学习的归纳与应用,只是个简单的线性脚本。 之前学习了selenium,发现csdn上大都是python selenium,故参考后改成java selenium,另外把读取本地时间改成了读取网站时间,更为精确。

准备

JAVA环境,Selenium-2.46.0 jar包,火狐浏览器固定版本(自用的可能是32.0) jar包与火狐浏览器安装包 链接 ,提取码: ybsf

代码

代码语言:javascript复制
package com.Test;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.WebDriver.Window;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Runner { 
   
	public static void main(String[] args) { 
   
		String taoBao = "https://www.taobao.com";
		WebDriver webDriver = new FirefoxDriver();
		Navigation navigation = webDriver.navigate();
		navigation.to(taoBao);
		Window window = webDriver.manage().window();
		window.maximize();
		try { 
   
			Thread.sleep(1000);
			webDriver.findElement(By.linkText("亲,请登录")).click();
			Thread.sleep(1000);
			webDriver.findElement(By.linkText("密码登录")).click();
			Thread.sleep(1000);
			webDriver.findElement(By.className("weibo-login")).click();
			Thread.sleep(1000);
			webDriver.findElement(By.name("username")).sendKeys("********");//****你的账号
			Thread.sleep(1000);
			webDriver.findElement(By.name("password")).sendKeys("********");//****你的密码
			Thread.sleep(1000);
			webDriver.findElement(By.linkText("登录")).click();
			Thread.sleep(15000);
			navigation.to("https://cart.taobao.com/cart.htm");
			Thread.sleep(1000);
			webDriver.findElement(By.id("J_SelectAll1")).click();
			Thread.sleep(3000);
			while(true) { 
   
				URL url = new URL(taoBao);// 取得资源对象
	            URLConnection uc = url.openConnection();// 生成连接对象
	            uc.connect();// 发出连接
	            long ld = uc.getDate();// 读取网站日期时间
	            Date dateNow = new Date(ld);// 转换为标准时间对象
	    
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss");
				String buyTime = "2020/01/01-00:00:00";
				Date dateNeed = sdf.parse(buyTime);
				if(dateNeed.equals(dateNow)||dateNeed.before(dateNow)) { 
   
					webDriver.findElement(By.linkText("结 算")).click();
					System.out.println(sdf.format(dateNow));
					
					webDriver.findElement(By.linkText("提交订单")).click();
					
					break;
				}
			}
			} catch (InterruptedException e) { 
   
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (ParseException e) { 
   
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (MalformedURLException e) { 
   
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) { 
   
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}	
}

  1. 因为淘宝登录需要滑动验证码,故这里使用微博账号绑定登录淘宝账号绕过验证。
  2. 关于如何使用CMD运行使用了第三方jar包的java程序: 将第三方jar包放在自创的bin目录中(D:TbFlashlib) cd D:TbFlashsrccomTest javac -classpath .;D:TbFlashlib* Runner.java java -classpath .;D:TbFlashlib* Runner.java
  3. 使用CMD运行jar: java -jar *.jar

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140908.html原文链接:https://javaforall.cn

0 人点赞