python selenium5 模拟点击+拖动+按照指定相对坐标拖动 58同城验证码


#!/usr/bin/python
# -*- coding: UTF-8 -*-
# @Time    : 2019年12月9日11:41:08
# @Author  : shenghao/10347899@qq.com
'''test with selenium's move by x,y'''
from builtins import print

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import cv2 as cv
import time, datetime, random,shutil
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.touch_actions import TouchActions
from selenium.webdriver.common.keys import Keys
from PIL import Image
import requests
from io import BytesIO
import cv2, time, sys,re
import matplotlib.pyplot as plt
import numpy as np


class selenium(object):
    def __init__(self):
        self.headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36"}
        chrome_option = webdriver.ChromeOptions()
        self.driver = webdriver.Chrome(executable_path="C:\Program Files\Python37\chromedriver.exe",
                                       chrome_options=chrome_option)
        self.driver.set_window_size(1440, 900)

    def visit_index(self):
        self.driver.get(
            "https://callback.58.com/antibot/verifycode?serialId=62cbf64a21ab4d309e722680c623a4e4_31ec33353c0648b7a5c97b1f2fb35976&code=22&sign=e6760461fc971994a2f3809ff536fbe9&namespace=anjuke_zufang_pc&url=.zu.anjuke.com%2Ffangyuan%2F1206610285371393%3Fisauction%3D1%26shangquan_id%3D1846")
        try:

            click_status = WebDriverWait(self.driver, 5, 1).until(
                EC.element_to_be_clickable((By.XPATH, "//div[@class = 'code_num']/input"))).click()
            html = self.driver.find_element_by_xpath("//*").get_attribute("outerHTML")
            rid = re.search("rid=(.*?)&", html).group(1)
            time.sleep(1)
            self.move(rid)
        except:
            pass

    def move(self,rid):
        element = self.driver.find_element_by_xpath("//div[@class = 'dvc-slider__handler']")
        move_list = ([100,0],[-3,0],[-4,0],[-5,0],[3,0],[2,0],[8,0],[10,0])
        if element:
            ActionChains(self.driver).click_and_hold(on_element=element).perform()
            for m in move_list:
                ActionChains(self.driver).move_by_offset(xoffset=m[0], yoffset=m[1]).perform()
                time.sleep(0.2)
            time.sleep(2)
            self.driver.close()

if __name__ == '__main__':
    h = selenium()
    h.visit_index()

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM