示例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

转载于:https://www.cnblogs.com/Desneo/p/7345824.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值