def get_element_slide_distance(self, slider_ele, background_ele, correct=0):"""依据传到滑块,和情况的连接点,测算滑块的间距该方式只有测算 滑块和背景图全是一张详细图片的情景,假如背景图是根据好几张小图片拼凑起來的背景图,该方式不适合,请应用get_image_slide_distance这一方式:param slider_ele: 滑块图片的连接点:type slider_ele: WebElement:param background_ele: 背景图的连接点:type background_ele:WebElement:param correct:滑块缺口截屏的调整值,默认设置为0,调节截屏是不是恰当的状况下能会用:type: int:return: 背景图缺口部位的X轴座标部位(缺口图片左界限部位)"""# 获得验证码的图片slider_url = slider_ele.get_attribute("src")background_url = background_ele.get_attribute("src")# 免费下载验证码背景图,滑动图片slider = "slider.jpg"background = "background.jpg"self.onload_save_img(slider_url, slider)self.onload_save_img(background_url, background)# 载入开展饱和度图片,变换为numpy中的二维数组种类数据信息,slider_pic = cv2.imread(slider, 0)background_pic = cv2.imread(background, 0)# 获得缺口图二维数组的样子 -->缺口图的宽和高width, height = slider_pic.shape[::-1]# 将解决以后的图片另存slider01 = "slider01.jpg"background_01 = "background01.jpg"cv2.imwrite(background_01, background_pic)cv2.imwrite(slider01, slider_pic)# 载入另存的滑块图slider_pic = cv2.imread(slider01)# 开展颜色变换slider_pic = cv2.cvtColor(slider_pic, cv2.COLOR_BGR2GRAY)# 获得偏色的平方根slider_pic = abs(255 - slider_pic)# 储存图片cv2.imwrite(slider01, slider_pic)# 载入滑块slider_pic = cv2.imread(slider01)# 载入背景图background_pic = cv2.imread(background_01)# 较为二张图的重合地区result = cv2.matchTemplate(slider_pic, background_pic, cv2.TM_CCOEFF_NORMED)# 获得图片的缺口部位top, left = np.unravel_index(result.argmax(), result.shape)# 背景图中的图片缺口座标部位print("当今滑块的缺口部位:", (left, top, left + width, top + height))return left
def slide_verification(self, driver, slide_element, distance):"""滑动滑块开展认证:param driver: driver目标:type driver:webdriver.Chrome:param slide_element: 滑块的元组:type slider_ele: WebElement:param distance:滑动的间距:type: int:return:"""# 获得滑动前网页页面的url地址start_url = driver.current_urlprint("必须滑动的间距为:", distance)# 依据滑动间距转化成滑动运动轨迹locus = self.get_slide_locus(distance)print("转化成的滑动运动轨迹为:{},运动轨迹的间距之和为{}".format(locus, distance))# 按住鼠标左键ActionChains(driver).click_and_hold(slide_element).perform()time.sleep(0.5)# 解析xml运动轨迹开展滑动for loc in locus:time.sleep(0.01)ActionChains(driver).move_by_offset(loc, random.randint(-5, 5)).perform()ActionChains(driver).context_click(slide_element)# 释放出来电脑鼠标ActionChains(driver).release(on_element=slide_element).perform()
? 有关滑动验证码鉴别就给大伙儿发送到这儿了,以上解决方法也是有相匹配的讲解视频
推荐阅读
- 标准羽毛球场地尺寸,标准羽毛球场地划线尺寸图?
- 公元的划分,公元纪年是怎么确定的,以什么为标准划分公元前和公元?
- 生日发朋友圈怎样写好,我生日发朋友圈怎样写好?
- 烤盘的焦黑怎么清洗
- 做什么小买卖能赚钱,十大冷门暴利小生意推荐
- mg是什么单位多少克,计量单位:mg是什么单位?
- 淘宝客推广平台有哪些,十大淘客软件排名
- 结婚红包祝福语,班长结婚送红包写点什么祝福语?
- 快递涨价涨了多少,2020年全国各快递公司收费价格表图
