示例1-苏宁每日自动登录打卡-结合Au3
public class SuningAutoClock
{
public static void AutoClock() throws IOException, InterruptedException {
SuningAutoClock autoLoginSuning = new SuningAutoClock();
autoLoginSuning.autoKick("234234","xxxxx");
}
public void autoKick(String userName, String password) throws InterruptedException, IOException
{
System.setProperty("webdriver.chrome.driver", "C:\\my-program\\chromedriver.exe");
WebDriver dr = new ChromeDriver();
try {
dr.get("https://www.suning.com/");
//等待登录组件加载完成
(new WebDriverWait(dr, 10)).until(new ExpectedCondition<Boolean>()
{
public Boolean apply(WebDriver d)
{
return d.findElement(By.cssSelector("a[href='javascript:SFE.base.logonurl();']")).isDisplayed();
}
});
//如果有新人弹出框,先关闭
if (dr.findElement(By.cssSelector(".new-user")).isDisplayed())
{
dr.findElement(By.cssSelector("i[name='index3_homepage1_xrtk_close']")).click();
}
//点击登录按钮
dr.findElement(By.cssSelector("a[href='javascript:SFE.base.logonurl();']")).click();
//等待登录页面加载完成
(new WebDriverWait(dr, 10)).until(new ExpectedCondition<Boolean>()
{
public Boolean apply(WebDriver d)
{
return d.findElement(By.xpath("/html/body/div[2]/div/div/div[1]/a[2]")).isDisplayed();
}
});
//点击账户登录
dr.findElement(By.xpath("/html/body/div[2]/div/div/div[1]/a[2]")).click();
//输入密码和账户
dr.findElement(By.cssSelector("#userName")).sendKeys(userName);
dr.findElement(By.cssSelector("#password")).sendKeys(password);
//勾选自动登录框
//WebElement autoLogin = dr.findElement(By.cssSelector("#rememberMe"))
//如果展示滑块,则拖动滑块
WebElement temp = dr.findElement(By.cssSelector(".dt_child_content_knob"));
if( temp!=null && temp.isDisplayed() ) {
Process process = Runtime.getRuntime().exec("C:\\Users\\Administrator\\Desktop\\AU3\\苏宁登陆页面拖动验证滑块.exe");
process.waitFor();
System.out.println("操作登陆滑块完成!!");
Thread.sleep(2000);
}
//点击登录按钮
dr.findElement(By.cssSelector("#submit")).click();
//等待"我的易购"按钮加载完成
(new WebDriverWait(dr, 10)).until(new ExpectedCondition<Boolean>()
{
public Boolean apply(WebDriver d)
{
return d.findElement(By.cssSelector(".mysuning-handle span")).isDisplayed();
}
});
//等待 我的易购页加载完成
dr.findElement(By.cssSelector(".mysuning-handle span")).click();
(new WebDriverWait(dr, 10)).until(new ExpectedCondition<Boolean>()
{
public Boolean apply(WebDriver d)
{
return d.findElement(By.cssSelector(".radiu-btn")).isDisplayed();
}
});
dr.findElement(By.cssSelector(".radiu-btn")).click();
//等待打开 打卡签到页面
Thread.sleep(5000);
for (String tempHandleId : dr.getWindowHandles())
{
dr.switchTo().window(tempHandleId);
if (dr.getTitle().equals("打卡签到_苏宁会员_苏宁易购"))
{
//等待 点我打卡加载完成
new WebDriverWait(dr, 10);
//调用au3的脚本进行打卡
Runtime runtime = Runtime.getRuntime();
runtime.exec("C:\\Users\\Administrator\\Desktop\\AU3\\苏宁打卡页面自动移动到打卡按钮.exe");
System.out.println("执行结束!!!");
}
}
}catch (Exception e){
e.printStackTrace();
}
finally {
Thread.sleep(5000);
dr.quit();
}
}
}
//苏宁登陆页面拖动验证滑块.au3
#include <MsgBoxConstants.au3>
#include <AutoItConstants.au3>
Example()
Func Example()
;累列出所有窗口
Local $aList = WinList()
; Loop through the array displaying only visable windows with a title.
For $i = 1 To $aList[0][0]
;找到指定窗口
If $aList[$i][0]== "用户登录 - Google Chrome" Then
$title = $aList[$i][0];
;激活窗口到最前
WinActivate($title);
;窗口最大化
WinSetState($title,"",@SW_MAXIMIZE);
MouseMove(840,440, 100);
//按下鼠标左键
MouseDown($MOUSE_CLICK_LEFT) ;
//移动鼠标
MouseMove ( 900, 435 ,10 );
MouseMove ( 1050, 450 ,30 );
//松开左键
MouseUp($MOUSE_CLICK_LEFT);
EndIf
Next
EndFunc ;==>Example
//苏宁打卡页面自动移动到打卡按钮.au3
#include <MsgBoxConstants.au3>
#include <AutoItConstants.au3>
Example()
Func Example()
;累列出所有窗口
Local $aList = WinList()
; Loop through the array displaying only visable windows with a title.
For $i = 1 To $aList[0][0]
;找到指定窗口
If $aList[$i][0]== "打卡签到_苏宁会员_苏宁易购 - Google Chrome" Then
$title = $aList[$i][0];
;激活窗口到最前
WinActivate($title);
;窗口最大化
WinSetState($title,"",@SW_MAXIMIZE);
;移动到x-400,y-600位置打卡
MouseMove(450,420, 100);
MouseClick($MOUSE_CLICK_LEFT);
EndIf
Next
EndFunc ;==>Example
示例1-苏宁每日自动登录打卡-结合Au3的更多相关文章
- 每日自动健康打卡(Python+腾讯云服务器)
每日自动健康打卡(Python+腾讯云服务器) 1.配置需要 python3.7,Chrome或者Edeg浏览器,Chrome驱动或者Edge驱动 #需要配置selenium库,baidu-aip库, ...
- 使用token实现在有效期内APP自动登录功能
实现此功能的场景是在当下用户对手机APP体验要求高,并且相对安全前提的推动下诞生:当你下载了一个QQ,微信第一次进行了账号和密码的登录,你从此以后打开应用免去了你每日打开应用都要输入账号跟密码的痛苦过 ...
- linux expect详解(ssh自动登录)
shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 expect "*password:&quo ...
- Spring Security笔记:Remember Me(下次自动登录)
前一节学习了如何限制登录尝试次数,今天在这个基础上再增加一点新功能:Remember Me. 很多网站,比如博客园,在登录页面就有这个选项,勾选“下次自动登录”后,在一定时间段内,只要不清空浏览器Co ...
- [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍
前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时 ...
- 360每日自动签到,领取积分 (java httpclient4.x)
如何登陆360,并每日自动签到这次的难点主要集中在登陆这里了,开始抓包发现360登陆验证很麻烦,但是后来发现一个简单的方法.因为我安装了360安全卫士,发现点击那个金币的按钮能直接验证登陆,哈哈~所以 ...
- 利用phantomjs模拟QQ自动登录
之前为了抓取兴趣部落里的数据,研究了下QQ自动登录. 当时搜索了一番,发现大部分方法都已经失效了,于是准备自己开搞. 第一个想到的就是参考网上已有方案的做法,梳理登陆js的实现,通过其他语言重写.考虑 ...
- 爬虫学习之基于Scrapy的爬虫自动登录
###概述 在前面两篇(爬虫学习之基于Scrapy的网络爬虫和爬虫学习之简单的网络爬虫)文章中我们通过两个实际的案例,采用不同的方式进行了内容提取.我们对网络爬虫有了一个比较初级的认识,只要发起请求获 ...
- C# 脚本代码自动登录淘宝获取用户信息
C# 脚本代码自动登录淘宝获取用户信息 最近遇到的一个需求是如何让程序自动登录淘宝, 获取用户名称等信息. 其实这个利用SS (SpiderStudio的简称) 实现起来非常简单. 十数行代码就可 ...
随机推荐
- 问题6:如何让字典保持有序(使用collections的OrderedDict方法)
from collections imort OrderedDict d = OrderedDict() d['aa'] = (1, 30) d['bb'] = (2, 31) d['cc'] = ( ...
- Linux负载均衡软件之LVS
一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是linuxvirtualserver.org ...
- 【P2P网贷新手入门】详解借款标的种类及其风险
不同于国外的网贷平台以信用借款标为主,在中国,我们投资网贷平台会看到多样借款标,而投资人往往弄不清自己投资的标属于什么类型的标,特点怎么样,风险如何. 抵 押 标 定义:借款人用自己的房屋车辆等实物在 ...
- Spring MVC配置详解(3)
一.Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar.spring-webmvc.ja ...
- 实现oracle分页---3种方法--
oracle的分页一共有三种方式 方法一 根据rowid来分 SELECT * FROM EMP WHERE ROWID IN (SELECT RID FROM (SELECT ROWNUM RN, ...
- jsp 路径问题
<script type="text/javascript" src="<%=ApplicationContextUtil.getBasePath(r ...
- 1.从GUI到MVC
GUI(graphic user interface 用户图形界面).GUI编程的目的是提供交互性,并根据用户的操作实时的更新界面.用户的操作是不可预知的鼠标和键盘事件,我们如何保持同步和更新?在上层 ...
- hdu1083
#include"stdio.h" #include"string.h" #define N 305 int mark[N],link[N],map[N][N] ...
- 安装MySQL出现1045错误,卸载不干净
安装MySQL出现1045错误 一.运行环境 MySQL mysql-5.1.26-rc-win32 操作系统:Windows 7 X64 二.问题描述 安装MySQL过程中会涉及对root密码的设置 ...
- CEPH安装教程(中)
NTP服务配置 NTP客户端配置 # vim /etc/ntp.conf server 92.0.0.250 ### 手动同步下时间 # ntpdate -u 92.0.0.250 ### 启动服务 ...