1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. # @Time : 2019/12/5 17:30
  4. # @Author : shenghao/10347899@qq.com
  5. '''test with selenium's move'''
  6. from builtins import print
  7.  
  8. from selenium import webdriver
  9. from selenium.webdriver.support.ui import WebDriverWait
  10. from selenium.webdriver.support import expected_conditions as EC
  11. from selenium.webdriver.common.by import By
  12. import cv2 as cv
  13. import time, datetime, random,shutil
  14. from selenium.webdriver.common.action_chains import ActionChains
  15. from selenium.webdriver.common.touch_actions import TouchActions
  16. from selenium.webdriver.common.keys import Keys
  17. from PIL import Image
  18. import requests
  19. from io import BytesIO
  20. import cv2, time, sys,re
  21. import matplotlib.pyplot as plt
  22. import numpy as np
  23.  
  24. class selenium(object):
  25. def __init__(self):
  26. self.headers = {
  27. "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"}
  28. chrome_option = webdriver.ChromeOptions()
  29. self.driver = webdriver.Chrome(executable_path="C:\Program Files\Python37\chromedriver.exe",
  30. chrome_options=chrome_option)
  31. self.driver.set_window_size(1440, 900)
  32.  
  33. def visit_index(self):
  34. self.driver.get(
  35. "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")
  36. try:
  37.  
  38. click_status = WebDriverWait(self.driver, 5, 1).until(
  39. EC.element_to_be_clickable((By.XPATH, "//div[@class = 'code_num']/input"))).click()
  40. html = self.driver.find_element_by_xpath("//*").get_attribute("outerHTML")
  41. rid = re.search("rid=(.*?)&", html).group(1)
  42. time.sleep(1)
  43. self.save_img(rid)
  44. except:
  45. pass
  46.  
  47. def save_img(self,rid):
  48. '''//div[@class = 'dvc-slider__handler'] button position'''
  49. image_name = datetime.datetime.now().timestamp()
  50. element = self.driver.find_element_by_xpath("//img[@class='dvc-captcha__bgImg']").screenshot_as_png
  51. with open(r'./%s_%s.png' % (rid,image_name), 'wb') as f:
  52. f.write(element)
  53. print(">>>>>>>>>>>>>>>>>>>>>> %s" % element)
  54. time.sleep(2)
  55. self.driver.close()
  56.  
  57. if __name__ == '__main__':
  58. h = selenium()
  59. h.visit_index()

python selenium4 模拟点击+拖动+保存验证码 测试对象+以验证码的返回ID保存命名 58同城验证码的更多相关文章

  1. python selenium3 模拟点击+拖动+保存验证码 测试对象 58同城验证码

    #!/usr/bin/python # -*- coding: UTF-8 -*- # @Time : 2019/12/5 17:30 # @Author : shenghao/10347899@qq ...

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

    #!/usr/bin/python # -*- coding: UTF-8 -*- # @Time : 2019年12月9日11:41:08 # @Author : shenghao/10347899 ...

  3. python selenium2 模拟点击+拖动 测试对象 58同城验证码

    #!/usr/bin/python # -*- coding: UTF-8 -*- # @Time : 2019/12/5 17:30 # @Author : shenghao/10347899@qq ...

  4. python selenium1 模拟点击 测试对象 58同城验证码

    #!/usr/bin/python# -*- coding: UTF-8 -*-# @Time : 2019/12/5 17:30# @Author : shenghao/10347899@qq.co ...

  5. 用js或JQuery模拟点击a标签的操作

    一.用js模拟点击a标签的操作. jsp代码: <a id="login" href="${pageContext.request.contextPath}/log ...

  6. 如何使用python来模拟鼠标点击(将通过实例自动化模拟在360浏览器中自动搜索"python")

    一.准备工作: 安装pywin32,后面开发需要pywin32的支持,否则无法完成与windows层面相关的操作. pywin32的具体安装及注意事项: 1.整体开发环境: 基于windows7操作系 ...

  7. Python使用selenium模拟点击(一)

    本文适合有点Python基础阅读,(没基础的话,相对的比较蒙蔽,争取能让小白能一步一步跟上来) 2019-03-05 14:53:05 前几天由于需要到一个网站进行签到~~听说Python能够模拟请求 ...

  8. python爬虫模拟登录的图片验证码处理和会话维持

    目标网站:古诗文网 登录界面显示: 打开控制台工具,输入账号密码,在ALL栏目中进行抓包 数据如下: 登录请求的url和请求方式 登录所需参数 参数分析: __VIEWSTATE和__VIEWSTAT ...

  9. python 模拟点击微信

    from PyQt5 import QtCore,QtWidgets import win32gui, win32api, win32con # 调用win32api的模拟点击功能实现ctrl+v粘贴 ...

随机推荐

  1. Flutter移动电商实战 --(19)首页_火爆专区商品接口制作

    Dart中可选参数的设置 上节课在作通用方法的时候,我们的参数使用了一个必选参数,其实我们可以使用一个可选参数.Dart中的可选参数,直接使用“{}”(大括号)就可以了.可选参数在调用的时候必须使用p ...

  2. Session_start的使用

    PHP session用法其实很简单它可以把用户提交的数据以全局变量形式保存在一个session中并且会生成一个唯一的session_id,这样就是为了多了不会产生混乱了,并且session中同一浏览 ...

  3. SpringBoot之HandlerInterceptor拦截器的使用 ——(一)

    HandlerInterceptor简介拦截器我想大家都并不陌生,最常用的登录拦截.或是权限校验.或是防重复提交.或是根据业务像12306去校验购票时间,总之可以去做很多的事情.我仔细想了想这里我分三 ...

  4. mysql物理备份innobackupex

    一.全量备份 1.安装xtrabackup # wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/b ...

  5. 一个数独引发的惨案:零知识证明(Zero-Knowledge Proof)

    导言:原文的作者是著名的Ghost和Spectre 这两个协议的创始团队的领队Aviv Zohar.原文作者说他的这篇原文又是引用了以下这两篇学术论文: How to Explain Zero Kno ...

  6. unity3d 嵌入iOS的 In App Purchase 应用程序内购买

    Unity做东西是快,但是有些功能是需要额外开发的,比如 IAP (In App Purchase,应用程序内购买) 还好unity提供了灵活的扩展功能,允许嵌入原生代码来做一些unity未实现的功能 ...

  7. 分析UIS-RNN源代码的代码规范和风格

    结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构.文件名/类名/函数名/变量名等命名.接口定义规范和单元测试组织形式等方面的做法和特点: 列举哪些做法符合代码规范和风 ...

  8. 集群架构05·备份服务rsync

    初识 开源,多功能,全量和增量的本地或远程数据同步备份的优秀工具,remote synchronization 俩服务器定/实时备份cron+rsync,数据同步,全网备份 一个rsync相当于scp ...

  9. jquery中 $.expr使用实例介绍

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. mysql导入问题

      今天在导入数据库的时候,发现此问题: 后来一查,是因为GTID_EXECUTED有值,而导出的文件中包含了SET @@GLOBAL.GTID_PURGED的操作,所以导入报错. 我们有两种方法解决 ...