当前位置: 首页 > 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日科技联播:马云将回归教育事业,张勇接任阿里巴巴董事局主席
  • 【comparator, comparable】小总结
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 30天自制操作系统-2
  • gitlab-ci配置详解(一)
  • JavaScript服务器推送技术之 WebSocket
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • KMP算法及优化
  • ubuntu 下nginx安装 并支持https协议
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 从tcpdump抓包看TCP/IP协议
  • - 概述 - 《设计模式(极简c++版)》
  • 简单数学运算程序(不定期更新)
  • 面试遇到的一些题
  • 什么是Javascript函数节流?
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • Spring第一个helloWorld
  • UI设计初学者应该如何入门?
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • ###C语言程序设计-----C语言学习(3)#
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #微信小程序(布局、渲染层基础知识)
  • #微信小程序:微信小程序常见的配置传值
  • (06)金属布线——为半导体注入生命的连接
  • (C++17) std算法之执行策略 execution
  • (pojstep1.3.1)1017(构造法模拟)
  • (pytorch进阶之路)扩散概率模型
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (蓝桥杯每日一题)love
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)socket Aio demo
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .a文件和.so文件
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET连接数据库方式
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • [ C++ ] 继承
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下