selenium 是一个 web 的自动化测试工具

Selenium WebDriver在启动火狐,作为自动化测试工具,可以直接通过浏览器对页面按照之前设置的程序进行操作,因为是完完全全原生浏览器的操作,所以我们人工可以完成的工作原则上WebDriver都可以帮助我们完成,这就是他强大的地方。

准备工作下载

(1)最新火狐

(2)火狐需要驱动geckodriver.exe

https://github.com/mozilla/geckodriver/releases/tag/v0.27.0

maven需要配置

org.seleniumhq.selenium

selenium-java

2.53.0

org.seleniumhq.selenium

selenium-htmlunit-driver

2.52.0

实测ok

package com.demomodel.utils.fuzhu.goShopping;

import java.util.List;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.firefox.FirefoxOptions;

import org.openqa.selenium.firefox.FirefoxProfile;

import org.openqa.selenium.firefox.ProfilesIni;

import org.openqa.selenium.remote.DesiredCapabilities;

public class myThread extends Thread{

private String name;

public myThread(String name){

this.name = name;

}

public void run(){

// 小米官网抢购红米k30 至尊    https://www.mi.com/buy/detail?product_id=12605

//https://www.mi.com/buy/detail?product_id=10000233

String baseurl = "https://www.mi.com/buy/detail?product_id=12605";

// 小米官网登录信息

String baseurl2 = "https://account.xiaomi.com/pass/serviceLogin?callback=http%3A%2F%2Forder.mi.com%2Flogin%2Fcallback%3Ffollowup%3Dhttp%253A%252F%252Fitem.mi.com%252Fbuyphone%252Fnote3%26sign%3DZmYyZmU3NmE0NWNmMjZkYzk5YmU5ZWJjMzc2Zjg1YzNhMjY3NTJjMg%2C%2C&sid=mi_eshop";

WebElement loginElement = null;

WebElement element = null;

List elements = null;

List taocan = null;

WebElement btn = null;

//webdriver.gecko.drive  webdriver.firefox.marionette

System.setProperty("webdriver.gecko.driver","C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");

//      DesiredCapabilities capabilities = DesiredCapabilities.firefox();

//        capabilities.setCapability("marionette", true);

//

//下面的语句用来启动带插件的火狐浏览器

ProfilesIni allProfiles = new ProfilesIni();

FirefoxProfile profile = allProfiles.getProfile("default");

FirefoxOptions options = new FirefoxOptions();

options.setProfile(profile);

//创建一个叫driver的对象,启动火狐浏览器

WebDriver driver = new FirefoxDriver(options);

//WebDriver driver = new FirefoxDriver();

//driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // 设置隐式等待10秒钟

//最大化浏览器窗口

//  driver.manage().window().maximize();

System.out.println("starting:");

driver.get(baseurl2);

driver.findElement(By.id("username")).sendKeys("18837137");  // 输入自己小米官网登录账号

driver.findElement(By.id("pwd")).sendKeys("w2213858");    // 输入小米官网登录密码

driver.findElement(By.id("login-button")).click();

System.out.println(driver.getCurrentUrl());

try {

sleep(5000);

} catch (InterruptedException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

driver.navigate().to(baseurl);

System.out.println("hello world!!");

elements = driver.findElements(By.xpath("//*[@class=\"option-box\"][div=\"选择颜色\"]/ul/li"));

if(elements == null || elements.size() == 0){

driver.close();//关闭

}

System.err.println(elements.size()+"====>"+2);

elements.get(2).click();  // 选择 白0  极夜黑1    薄荷绿2

try {

sleep(2000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

elements = driver.findElements(By.xpath("//*[@class=\"option-box\"][div=\"选择版本\"]/ul/li"));

System.err.println(elements.size()+"===>"+0);

elements.get(0).click();            // 选择8GB+128GB

elements = driver.findElements(By.className("sale-btn"));

elements.get(0).click();                // 点击下一步抢购按钮  等待

//driver.quit(); //退出

System.out.println(elements.size());

}

}

import java.util.Iterator;

import java.util.Random;

public class test{

public static void main( String[] args ) throws InterruptedException{

//1个线程跑  10s完成登录  15s进入页

//5线程跑  提前1分钟完成登录

for (int i = 0; i < 5; i++) {

myThread th1 = new myThread("A"+System.currentTimeMillis());

th1.start();

}}}

java 小米抢购_java 小米商城抢手机redmik30 pro相关推荐

  1. java 小米抢购_Github搞得小米抢购脚本,参考一下

    # -*- coding:utf-8 -*- #读取小米账号 import urllib2 import urllib import cookielib class Xiaomi: '''小米抢购'' ...

  2. java 短信_java实现发送手机短信

    本文主要研究了JAVA语言发送手机,分享给大家,供大家参考,具体内容如下 JAVA发送手机短信,流传有几种方法: (1)使用webservice接口发送手机短信,这个可以使用sina提供的webser ...

  3. java语音验证码_Java实现发送手机短信语音验证功能代码实例

    这篇文章主要介绍了Java实现发送手机短信语音验证功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 利用第三方平台可以实现发送手机短信验证 ...

  4. java限时抢购_java在商家促销中的限时抢购是怎么实现的?时间是怎么控制的?...

    你好,感谢邀请,回答如下: 1.问题引入 电商的秒杀和抢购,对我们来说,都不是一个陌生的东西.然而,从技术的角度来说,这对于Web系统是一个巨大的考验.当一个Web系统,在一秒钟内收到数以万计甚至更多 ...

  5. python京东抢购手机攻略_Python实现自动上京东抢手机

    本文实例为大家分享了python自动上京东抢手机的具体代码,供大家参考,具体内容如下 上次抢荣耀V9,被京东给恶心到了,所以就写了个简单的Python来自动抢V9.虽然用的是比较蠢的方法,但觉得还是有 ...

  6. python写自动抢购脚本_Python实现自动上京东抢手机

    本文实例为大家分享了Python自动上京东抢手机的具体代码,供大家参考,具体内容如下 上次抢荣耀V9,被京东给恶心到了,所以就写了个简单的Python来自动抢V9.虽然用的是比较蠢的方法,但觉得还是有 ...

  7. 小米抢购限流峰值系统架构历年演进历程

    小米抢购系统的成长史 大家对下面这个排队的场景应该非常熟悉,这个是小米手机抢购的用户排队交互图,大家看到这些排队的兔子时,说明也有很多用户在同一时间向小米抢购系统提交了购买请求. 小米抢购系统后端服务 ...

  8. 小米抢购页面源码分析2014年03月18号

    有些时候一些直觉还是很有用的,或许人的直觉本就是经过长时间的学习具有了用现有信息推导结论的能力,只是你没有意识到你是怎么推导的而已,算是内隐记忆吧. By:小宗 这篇文章似乎是带着悲伤的心情写的,这几 ...

  9. python操作手机京东_Python实现自动上京东抢手机

    本文实例为大家分享了Python自动上京东抢手机的具体代码,供大家参考,具体内容如下 上次抢荣耀V9,被京东给恶心到了,所以就写了个简单的Python来自动抢V9.虽然用的是比较蠢的方法,但觉得还是有 ...

最新文章

  1. 线程安全之strtok()函数
  2. 点击拖动放大该图片大小
  3. .Net 多线程 异步编程 Await、Async和Task
  4. SAP HANA Hint简介
  5. 更换 CentOS 7 的下载源为阿里云
  6. MatLab GUI Change Size 改变界面大小
  7. python安装在d盘环境变量配置_python安装与环境变量配置
  8. xlib/x11:创建一个监测键盘事件的窗口-4-箭头控制窗口移动
  9. Kubernetes1.7 新特性:日志审计变化
  10. Java生成随机常用汉字或姓名
  11. 3.windows图形界面
  12. 5V转±12V无变压器双boost电路
  13. lsass.exe和smss.exe病毒专杀工具——即磁碟机病毒专杀工具(转载)
  14. CAN网络管理Autosar(入门)
  15. React中useEffect与生命周期钩子函数的对应关系
  16. 微信、qq可以上网,但是浏览器却不能上网怎么办
  17. 三维图像专业处理软件Dragonfly的快捷键设置
  18. python爬虫实现批量下载百度图片
  19. 亚马逊违反受限商品申诉模板,亚马逊二手产品申诉
  20. 1002 写出这个数 (20 分)

热门文章

  1. osg火焰爆炸烟火粒子效果
  2. android 使用WebRTC搭建视频聊天室
  3. Soul网关源码阅读19-解析sign插件
  4. java发送hotmail邮件_利用javamail收取Hotmail的退信
  5. 【Luogu】 P1726 上白泽慧音
  6. 企业岗位申请表-Word简历可编辑下载
  7. 【学vue跟玩一样】快速搞懂vue渲染
  8. 【自动驾驶技术】优达学城无人驾驶工程师学习笔记(七)——计算机视觉基础
  9. html 微信无法获取图片,微信浏览器input file 图片选择问题,获取不到图片的type等信息...
  10. Mac安装ruby环境及Xcode安装cocoapods整体流程--ios引用第三方库的环境准备