Beispiel #1
0
        /// <summary>
        /// 出价 -
        /// 1. 输入价格 - 移动到输入框位置,点击,清空历史数据,输入新价格
        /// 2. 点击出价按钮 - 移动到按钮位置,点击
        /// 3. 对验证码区域截图 且 上传
        /// </summary>
        public CaptchaAnswerImage OfferPrice(int targetPrice, bool enableCancelFirst, bool needUploadCaptchaTask = false)
        {
            // 0. 出价前,先尝试取消,防止上一步的可能的遮罩
            if (enableCancelFirst)
            {
                actionManager.ClickButtonByFenceWayRToL(actionManager.AddDelta(742, 502));
            }

            // 1. 输入价格 且 出价
            actionManager.InputTextAtPoint(actionManager.AddDelta(676, 317), targetPrice.ToString(), true, "第一阶段出价#i1");
            actionManager.InputTextAtPoint(actionManager.AddDelta(676, 375), targetPrice.ToString(), true, "第一阶段出价#i2");
            actionManager.ClickButtonAtPoint(actionManager.AddDelta(800, 373), true, "第一阶段出价");

            // 2. 对验证码区域截屏且上传
            KK.Sleep(500);
            CaptchaAnswerImage img = CaptureCaptchaImage();

            UploadCaptchaImage(img);

            return(img);
        }
Beispiel #2
0
        /// <summary>
        /// 出价 -
        /// 1. 输入价格 - 移动到输入框位置,点击,清空历史数据,输入新价格
        /// 2. 点击出价按钮 - 移动到按钮位置,点击
        /// 3. 对验证码区域截图 且 上传
        /// </summary>
        public void OfferPrice(int targetPrice, bool enableCancelFirst, Func <CaptchaAnswerImage, bool> callbackFunc = null)
        {
            // 0. 出价前,先尝试取消,防止上一步的可能的遮罩
            if (enableCancelFirst)
            {
                // this.CancelOfferedPrice();
                actionManager.ClickButtonByFenceWayRToL(actionManager.AddDelta(742, 502));
            }

            // 1. 输入价格 且 出价
            // TODO: 坐标方法 - 应该抽取出来单独管理
            actionManager.InputTextAtPoint(actionManager.AddDelta(676, 417), targetPrice.ToString(), true, "第二阶段出价");
            actionManager.ClickButtonAtPoint(actionManager.AddDelta(800, 415), true, "第二阶段出价");

            // 2. 对验证码区域截屏且上传
            // 这里尝试异步
            ThreadUtils.StartNewTaskSafe(() =>
            {
                // 这里等待会阻塞进程
                KK.Sleep(390);
                CaptchaAnswerImage img = CaptureCaptchaImage();
                UploadCaptchaImage(img);

                callbackFunc?.Invoke(img);
            }
                                         );


            // return img;
        }