(python笔记)python使用JS定位css元素
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import datetime class Zengtao_get(object): def __init__(self, url, account, password):
self.driver = webdriver.Chrome()
self.driver.get(url)
self.driver.maximize_window() self.driver.find_element_by_name(name="account").send_keys(account)
self.driver.find_element_by_name(name="password").send_keys(password)
self.driver.find_element_by_id("submit").click() time.sleep(2) # def login(self, account, password):
# """
# # self.account = account
# # self.password = password
# """ def search(self, value1, value2):
# 搜索条件
self.driver.find_element_by_xpath('//*[@id="bug-search"]/tbody/tr[2]/td/button[3]/i').click()
self.driver.find_element_by_xpath('//*[@id="field1_chosen"]/a/span').click()
self.driver.find_element_by_xpath('//*[@id="field1_chosen"]/div/ul/li[22]').click() # 由谁创建
self.driver.find_element_by_xpath('//*[@id="value1_chosen"]/a/span').click()
self.driver.find_element_by_xpath('//*[@id="value1_chosen"]/a/div[2]/input').send_keys(value1) # 输入搜索内容
self.driver.find_element_by_xpath('//*[@id="value1_chosen"]/a/div[2]/input').send_keys(Keys.ENTER) self.driver.find_element_by_xpath('//*[@id="field2_chosen"]/a/span').click()
self.driver.find_element_by_xpath('//*[@id="field2_chosen"]/div/ul/li[28]').click() # 创建时间
self.driver.find_element_by_xpath('//*[@id="value2"]').click()
self.driver.find_element_by_xpath('//*[@id="value2"]').send_keys(value2) # 输入当天日期
self.driver.find_element_by_xpath('//*[@id="value2"]').send_keys(Keys.ENTER) self.driver.find_element_by_xpath('//*[@id="submit"]').click() # 搜索
time.sleep(2)
# 获取当天创建bug数
js = "return document.querySelector('.table-empty-tip')" # return JS定位css输出值 document.querySelector
bug = self.driver.execute_script(js) # python调用js方法execute_script
#判断元素是否存在
if bug is None:
bug_number = self.driver.find_element_by_xpath('//*[@id="bugForm"]/div[3]/div[3]/strong[1]').text
print('本页共 %s 个bug' % bug_number)
else:
print('当天创建bug数 = 0')
self.driver.quit() if __name__ == '__main__':
# value2 = time.strftime('%Y-%m-%d') # 当天日期
value2 = '2021-3-17'
Run = Zengtao_get('http://192.168.0.1/', 'lkj', '123456')
# Run.login()
Run.search('小学生', value2) # driver.quit()
纯手工,不喜勿喷
(python笔记)python使用JS定位css元素的更多相关文章
- 【Python + Selenium】之JS定位总结
感谢:小琰子 Python+Selenium 脚本中的一些js的用法汇总: 1.滚动条 driver.set_window_size(500,500) js = "window.scroll ...
- 使用原生JS定位网页元素
约定:1.<meta name="viewport" content="width=device-width">这种标记简称"wdw&qu ...
- python UI自动化之JS定位
1.话不多说,直接贴入代码 上面的 document.getElementById 可以替换成别的定位方式,比如: 通过name获取:document.getElementsByName 通过标签获取 ...
- 页面元素定位-CSS元素基本定位
基本定位 """属性定位 一 """ # #通过id # driver.find_element_by_css_selector(" ...
- python笔记-python编程优化:常用原则和技术介绍
本人翻译自<Exper Python Programming> 'Premature optimization is the root of all evil in programming ...
- python+selenium基础之XPATH定位(第一篇)
世界上最远的距离大概就是明明看到一个页面元素矗在那里,但是我却定位不到!! selenium定位元素的方法有很多种,像是通过id.name.class_name.tag_name.link_text等 ...
- python 笔记-转
python笔记 Python 学习笔记 - 14.技巧(Tips) Python 学习笔记 - 13.异常(Exception) Python 学习笔记 - 12.流程控制(Contro ...
- 【selenium学习笔记一】python + selenium定位页面元素的办法。
1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的 ...
- Selenium with Python 005 - 调用js操作页面元素
WebDriver提供了execute_script()方法来执行JavaScript方法,格式如 driver.execute_script(script,*args) 执行js一般有两种场景,一是 ...
- Python+selenium(定位一组元素)
我们熟知Webdriver有8种定位元素的方法,但是当需要定位一组元素的时候,可以使用Webdriver提供的与之对应的8种用于定位一组元素的方法,分别是: find_elements_by_id() ...
随机推荐
- JS逆向之补环境过瑞数详解
JS逆向之补环境过瑞数详解 "瑞数" 是逆向路上的一座大山,是许多JS逆向者绕不开的一堵围墙,也是跳槽简历上的一个亮点,我们必须得在下次跳槽前攻克它!! 好在现在网上有很多讲解瑞数 ...
- Java基础学习笔记-关键字、标识符、分隔符
标识符(identifier),我的理解呢,简单来说就是一个常量或者变量的名字啦 命名规则: 只能以 字母..$ 这三种开头,后面的话就可以由字母..$和数字组成 不能用Java中的关键字 不能包含空 ...
- axios 使用方法 以及服务器端 设置拦截发送404状态的提示语,当网络错误时候返回前端的提示, 当网络正常的时候返回后端的提示
本文旨在说明 设置全局异常拦截器 当网络错误时候返回前端的提示, 当网络正常的时候返回后端的提示 export default ({ development: { baseURL: 'http:// ...
- 【Redis场景4】单机环境下秒杀问题
单机环境下的秒杀问题 全局唯一ID 为什么要使用全局唯一ID: 当用户抢购时,就会生成订单并保存到订单表中,而订单表如果使用数据库自增ID就存在一些问题: 受单表数据量的限制 id的规律性太明显 场景 ...
- redis 6种过期策略的具体方式
redis 中的默认的过期策略是volatile-lru .设置方式 config set maxmemory-policy volatile-lru maxmemory-policy 六种方式 vo ...
- 第九周总结-MySQL、前端
多表查询的两种方式 1.连表操作: 1.1: inner join:内连接,将两张表共同的部分连接在一起生成一张新表.凭借顺序是把后面的表拼在前面表的后面,如果颠倒位置结果不同. select * f ...
- 树莓派4B—LCD触摸屏和硬件串口配置
1.LCD触摸屏直接下载官网驱动,这里选用的是3.5寸显示屏,解压后直接运行 sudo ./LCD35-show 然后重启. 注意:一定要先安装LCD驱动,因为安装驱动会修改/boot/config. ...
- 微信小程序-【转发好友】以及中文标题乱码问题解决
微信小程序的转发功能,参考官方文档,使用的buttom的open-type功能,下面是转发功能的具体实现. // 通过按钮的 open-type="share"实现转发,触发onS ...
- Rpc-实现Client对ZooKeeper的服务监听
1.前言 在上一篇文章中,完成了ZooKeeper注册中心.但是在上一篇中,ZooKeeper添加了一个简单的本地缓存,存在一些问题: 当本地缓存OK,ZooKeeper对应服务有新的实例时,本地缓存 ...
- Vue框架:9,Vue3的用法,setup函数,ref和reactive,计算属性和监听属性,生命周期,toRefs,script setup的作用和lang,Vue后台管理模板
目录 前端开发之Vue框架 一.Vue3 1.Vue3创建项目 2.setup函数 3.ref和reactive 4.计算属性和监听属性 5.生命周期 6.toRefs 7.script setup的 ...