当前位置: 首页 > news >正文

Python利用Selenium自动登录掘金

0.前言

最近对python很感兴趣,主要是想用它结合adb做一些android游戏的外挂,同时写一些小的爬虫,解决服务器端的内容问题。Selenium是一个自动化测试工具,可以操控浏览器模拟元素的点击和赋值。

1.分析

代开掘金网站,点击右上角的图标

之后在登录框输入用户名和密码,并点击登录

2.Selenium基本用法

2.1获得驱动

webdriver=webdriver.Chrome() 获得chrome浏览器的驱动

2.2元素定位

find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text通过部分超链接定位 find_element_by_tag_name find_element_by_class_name find_element_by_css_selector

2.3元素事件

元素.click()模拟元素的点击事件 元素.clear()清楚元素的值 元素.send_keys(content)为元素赋值

2.4切换窗口

webdriver.switch_to.window(handle)

2.5

3.代码实现

def login(webdriver, url, login_xpath, username_xpath, user_name, password_xpath, password, login_btn_xpath):
    webdriver.get(url)
    if login_xpath is not None:
        login_btn = webdriver.find_element_by_xpath(login_xpath)
        login_btn.click()
        login_by_password(webdriver, username_xpath, user_name, password_xpath, password, login_btn_xpath)
    else:
        login_by_password(webdriver, username_xpath, user_name, password_xpath, password, login_btn_xpath)
        
    
        
def loginJueJin(webdriver, user_name, password, url='https://juejin.im/',
                login_xpath='//*[@id="juejin"]/div[2]/div/header/div/nav/ul/li[4]/span[1]',
                username_xpath='//*[@id="juejin"]/div[1]/div[3]/form/div[2]/div[1]/div[1]/input',
                password_xpath='//*[@id="juejin"]/div[1]/div[3]/form/div[2]/div[1]/div[2]/input',
                login_btn_xpath='//*[@id="juejin"]/div[1]/div[3]/form/div[2]/button'):
    login(webdriver, url, login_xpath, username_xpath, user_name, password_xpath, password, login_btn_xpath)L      
复制代码

关注我的公众号

相关文章:

  • ASP.NET CORE Combines Angular to Create SPA
  • 海量数据处理 - 十道面试题与十个海量数据处理方法总结
  • 如何搭建一个完整的交易框架
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • easyui datagrid 相关取数据总结
  • 平台化技术:从C/S到B/S
  • ckeditor 3.6在IE11不能粘贴
  • SQLServer之修改DEFAULT约束
  • LinkedList源码
  • 爬虫基础 - 抓包
  • Object.assign方法不能实现深复制
  • 手拉手教你实现一门编程语言 Enkel, 系列 13
  • css过渡,css动画,页面布局分析,表单元素
  • JSONModel使用
  • 9月10日科技联播:马云将回归教育事业,张勇接任阿里巴巴董事局主席
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • C# 免费离线人脸识别 2.0 Demo
  • jquery cookie
  • Laravel 中的一个后期静态绑定
  • magento 货币换算
  • 对超线程几个不同角度的解释
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 前端性能优化——回流与重绘
  • 人脸识别最新开发经验demo
  • 使用 @font-face
  • 世界上最简单的无等待算法(getAndIncrement)
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 我的zsh配置, 2019最新方案
  • 项目实战-Api的解决方案
  • 云大使推广中的常见热门问题
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Java数据解析之JSON
  • ​iOS安全加固方法及实现
  • # 数论-逆元
  • #、%和$符号在OGNL表达式中经常出现
  • #Ubuntu(修改root信息)
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (1)(1.13) SiK无线电高级配置(五)
  • (3)llvm ir转换过程
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (MATLAB)第五章-矩阵运算
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (五)网络优化与超参数选择--九五小庞
  • (一)Dubbo快速入门、介绍、使用
  • (译) 函数式 JS #1:简介
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)Scala的“=”符号简介
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .bat批处理(一):@echo off
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别