# 推荐学习:https://www.w3school.com.cn/js/index.asp
#
# 下面以简书登录&注册定位元素为例
"""
js定位 id name class_name xpath css元素器

除了id是定位到的是单个的element元素对象,其他的都是elements返回的是list对象
1.通过id获取
js_id = 'document.getElementById("id的值");'
2.通过CLASS获取
js_class = 'document.getElementsByClassName("class的值")[0];'
3.通过Name获取
js_name = 'document.getElementsByName("name的值")[0];'
4.通过标签名选取元素
js_tag = 'document.getElementsByTagName("tag的值")[0];'
5.通过CSS选择器选取元素
js_css = 'document.querySelectorAll("CSS Selector语法")[0];'
"""

from selenium import webdriver
import time as t

driver = webdriver.Chrome()
driver.get('https://www.jianshu.com/sign_in')

#js id 定位注册
js_id = 'document.getElementById("js-sign-up-btn").click();'
driver.execute_script(js_id)
t.sleep(2)

#返回首页
driver.get('https://www.jianshu.com/sign_in')

#js CLASS 定位登录
js_class = 'document.getElementsByClassName("active")[0].click();'
driver.execute_script(js_class)
t.sleep(2)


#js Name 输入用户名
js_name = 'document.getElementsByName("session[email_or_mobile_number]")[0].value="username";'
driver.execute_script(js_name)
t.sleep(2)

#js tag 输入密码
js_tag = 'document.getElementsByTagName("input")[3].value="123456";'
driver.execute_script(js_tag)
t.sleep(2)



#js Css 点击登录
js_css = 'document.querySelectorAll(".sign-in-button")[0].click();'
driver.execute_script(js_css)
t.sleep(2)



driver.quit()

"""
jquery操作处理
jquery语法
jq_id = '$("id").vla(值)' --输入文本内容
jq_id = '$("id").click()' --点击
jq 处理id 、type、tag层级定位
"""

from selenium import webdriver
import time as t

driver = webdriver.Chrome()
#简书站点
driver.get('https://www.jianshu.com/sign_in')

#根据id定位 #代表id
jq_id = '$("#session_email_or_mobile_number").val("username")'
driver.execute_script(jq_id)
t.sleep(2)

#根据type定位 type属性定位:属性值 输入密码
jq_type = '$(":password").val("123")'
driver.execute_script(jq_type)
t.sleep(1)


#按层次定位 勾选记住我
#1.带有标签 type定位
jq_remember = '$(".remember-btn > input:checkbox").val("123456")'
driver.execute_script(jq_remember)
t.sleep(2)
#2.不带标签
# jq_remember = '$(".remember-btn > :checkbox").click())'
# driver.execute_script(jq_remember)
# t.sleep(2)
#3.不带层次符号
# jq_remember = '$(".remember-btn :checkbox").click())'
# driver.execute_script(jq_remember)
# t.sleep(2)
#4.选择最后一个标签(input)的元素
# jq_remember = '$(".remember-btn > input:last").click())'
# driver.execute_script(jq_remember)
# t.sleep(2)


#class 定位 定位登录按钮
jq_remember = '$(".sign-in-button").click()'
driver.execute_script(jq_remember)
t.sleep(2)

driver.quit()

selenium3 + python - js&jquery操作处理的更多相关文章

  1. js/jquery 操作document对象

    一.获取对象 //js获取的是dom对象,jquery获取的是jquery对象 //jquery对象可以输出dom对象,索引方式输出dom对象,eq()[]方式输出dom对象;eq()输出jquery ...

  2. JS/JQuery操作DOM元素笔记

    原因 自己目前在搭建一个.NET Core的框架,正在构建权限这块的东西,今天设置权限界面,需要使用JavaScript操作DOM元素,记录一下. 页面大概是酱紫的(我使用的AdminLTE和LayU ...

  3. selenium3 + python - js 内嵌滚动处理

    一.js内嵌html <!DOCTYPE html><html lang="en"><head> <meta charset=" ...

  4. selenium3 + python - js处理readonly属性

    前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...

  5. JS JQuery 操作: Json转 Excel 下载文件

    方法的调用 var json = '[' + '{"申请流水号":"123456","保险公司":"测试数据",&quo ...

  6. Selenium2学习-014-WebUI自动化实战实例-012-Selenium 操作下拉列表实例-div+{js|jquery}

    之前已经讲过了 Selenium 操作 Select 实现的下拉列表:Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select,但是在实际的日 ...

  7. jquery操作iframe中的js函数

    关键字:jquery操作iframe中的js函数 1.jquery操作iframe中的元素(2种方式) var tha = $(window.frames["core_content&quo ...

  8. 原生JS和jQuery操作DOM的区别小结

    一.Js原生对象和jQuery实例对象的相互转化: (1).原生JS对象转JQ对象: $(DOM对象); (2). JQ对象转原生JS对象: $(DOM对象).get(index); //注意区分eq ...

  9. js jquery select 操作 获取值,选中选项,增加,修改,删除

    select示例: <select id="sel"> <option value="1">one</option> < ...

随机推荐

  1. NVIDIA Jarvis:一个GPU加速对话人工智能应用的框架

    NVIDIA Jarvis:一个GPU加速对话人工智能应用的框架 Introducing NVIDIA Jarvis: A Framework for GPU-Accelerated Conversa ...

  2. 硬核!2w 字长文爆肝分布式事务知识点!!

    前言 分布式事务,是分布式架构中一个绕不开的话题,而什么是分布式事务?为什么要使用分布式事务?分布式事务有哪些实现方案?更是面试时面试官特别喜欢的一个分布式三连炮!同时用XMind画了一张导图记录分布 ...

  3. Spring Cloud系列(四):断路器Hystrix

    上一篇介绍了负载均衡的配置方法,做负载均衡是为了保证高可用性,但是有时候服务提供者挂掉了,比如服务A调用了服务B,服务B又调用了服务C,然后有一天服务C的所有节点都挂掉了,这时服务B就会因为C异常而在 ...

  4. 面试一次问一次,HashMap是该拿下了(一)

    文章目录 前言 一.HashMap类图 二.源码剖析 1. HashMap(jdk1.7版本) - 此篇详解 2. HashMap(jdk1.8版本) 3. ConcurrentHashMap ~~ ...

  5. Java设计模式(5:设计模式的分类及工厂模式详解)

    一.设计模式的分类 总的来说,设计模式可以分为三大类:创建型模式.结构型模式.行为型模式,具体如下图: 二.工厂模式 工厂模式分为简单工厂模式.工厂方法模式和抽象工厂模式.其中简单工厂模式并不属于23 ...

  6. DB2 SQL0805N解决和思考

    一.报错现象 这是一个在使用 DB2数据库过程中比较常见的错误, 报错信息如下 Exception stack trace: com.ibm.db2.jcc.am.SqlException: DB2 ...

  7. Windows操作系统添加永久静态路由

    1.比如:添加一条去往 10.10.10.0/24网段的静态路由,指定去往此网段的路由都走 172.20.153.254网关 route -p add 10.10.10.0 mask 255.255. ...

  8. es6 快速入门 系列 —— promise

    其他章节请看: es6 快速入门 系列 Promise Promise 是一种异步编程的选择 初步认识Promise 用 Promise 来实现这样一个功能:发送一个 ajax,返回后输出 json ...

  9. Python-统计目录(文件夹)中Excel文件个数和数据量

    背景:前一阵子在帮客户做Excel文件中的数据处理,但是每周提交周报,领导都需要统计从客户接收的文件数量以及记录数.所以我就简单写了统计的脚本,方便统计目录(文件夹)中的Excel文件个数和数据量. ...

  10. Unity_DOTween

    DOTween官网 DG.Tweening.Ease枚举详解 2019.12.12补充: 问题:当前dotween动画没播放完,便再次播放有冲突的操作,如连续多次播放.正播.倒播,导致显示不正常或报错 ...