示例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的简称) 实现起来非常简单. 十数行代码就可 ...
随机推荐
- 异常:Project configuration is not up-to-date with pom.xml解决方案
转自:https://www.cnblogs.com/zhujiabin/p/6343423.html 1. Description Resource Path Location ...
- Java学习路线-知乎
鼬自来晓 378 人赞同 可以从几方面来看Java:JVM Java JVM:内存结构和相关参数含义 · Issue #24 · pzxwhc/MineKnowContainer · GitHub J ...
- 使用jpa报No query defined for that name错误
今天使用jpa创建本地查询时出现Java.lang.IllegalArgumentException: No query defined for that name..... 一个很sb的问题,调用e ...
- C++中队列的建立和操作
什么是队列结构 队列结构是从数据运算来分类的,也就是说队列结构具有特殊的运算规则.而从数据的逻辑结构来看,队列结构其实就是一种线性结构.如果从数据的存储结构来进一步划分,队列结构可以分成两类. 顺序队 ...
- 基于MapReduce的矩阵乘法
参考:http://blog.csdn.net/xyilu/article/details/9066973文章 文字未得及得总结,明天再写文字,先贴代码 package matrix; import ...
- ubuntu 下minicom超级终端的使用方法
http://blog.chinaunix.net/uid-25909619-id-3184639.html Ubuntu下使用sshfs挂载远程目录到本地 http://blog.csdn.net/ ...
- SCSS 中的 &::before 和 &::after
在看一个文件的时候,发现有&::before 和 &::after, 没有理解怎么用的,因为以前在项目的css文件中,从来没有使用过,也没有见过 网上查询了一下,才发现&::b ...
- 17. CTF综合靶机渗透(十)
靶机描述:欢迎来到超级马里奥主机!这个虚拟机是对真实世界场景场景的模拟.目标是在VM中找到2个标志.根是不够的(对不起!)VM可以以多种方式开发,但请记住枚举是关键.挑战的程度是中等的.感谢VDBAN ...
- 高性能服务器设计(Jeff Darcy's notes on high-performance server design
高性能服务器设计(Jeff Darcy's notes on high-performance server design 我想通过这篇文章跟大家共享一下我多年来怎样开发“服务器”这类应用的一些想法和 ...
- mooon模板的automake、autoconf、m4和libtool版本信息
autoconf --version autoconf (GNU Autoconf) 2.59 automake --version automake (GNU automake) 1.9.6 m4 ...