(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() ...
随机推荐
- Linux C 用GPS时间更新系统时间的方法。
思路: 1.GPS模块会自动收到带时间信息的消息. GPS模块会收到很多的协议消息带时间信息的.我们选择"$GPRMC"这条协议.其中的时间格式有的是hhmmss(时分秒) 有的是 ...
- 图文并茂基于阿里云linux服务器部署nodejs项目并添加pm2守护nodejs项目运行进程(Linux version 4.19.81-17.1.al7.x86_64)
首先你要有一台LINIX服务器,登入以后按下面步骤执行命令,可查看系统版本以及配置 查看Linux 内核 通过 uname -a 命令查看系统位数是64位 x86_64表示64位系统, i686 i3 ...
- Unity之正确设置手机显示布局&&获取手机朝向
目录 Unity之正确设置手机显示布局 && 获取手机朝向 前言 开篇 Unity版本及使用插件 正题 设置手机屏幕显示布局.Screen.orientation 获取手机当前朝向.I ...
- uni-app + .NET 7实现微信小程序订阅消息推送
微信小程序的订阅消息是小程序的重要能力之一,为实现服务的闭环提供更优的体验.订阅消息我们应该经常见到,比如下单成功之后的服务通知,支付成功后的支付成功通知,都属于小程序的订阅消息. 本文只实现一次性订 ...
- 视觉十四讲:第十二讲_RGB-D稠密点云
1.点云地图 所谓点云,就是由一组离散的点表示的地图,最基本的点包含x,y,z三维坐标,也可以带有r,g,b的彩色信息. #include <iostream> #include < ...
- Mat数据结构
1.MAT类: OpenCV从2001年开始发展,在最初使用的是c语言,使用的是IplImage数据结构来存储图像,但是最大的问题需要手动申请释放内从( manual memory managemen ...
- Cesium entity画各种图(十六)
在官方示例的沙盒里写东西是真方便 Cesium中有两种对象可以添加到场景中,Entity.Primitive.Entity对用户更友好,方便使用,但是灵活性和性能差一些.Primitive,支持自定义 ...
- async异步编程屏蔽凡人
为提高效率与增加逼格,墙裂建议引入async异步编程,这不比基于threading的线程.基于multiprocessing的进程香?这些大家伙太重量级了,代码又啰里啰唆的一点也不pythonic,只 ...
- playwright结合pytest使用案例
playwright简介 不愧是宇宙最强,它也是目前为止对ui自动化领域里最好的一个库,在selenium之上,还有对应的异步机制,其他见百度不便在此详叙. 本篇经典案例是对我司的veer产品做ui自 ...
- 题解 P4163 [SCOI2007]排列
强烈谴责只有 125MB 的行为,然后我没删调试是个什么 SB... 闲话少说,切入正题-- 首先看到取余和数字是可以排列的,我们自然而然的想到了数位 dp,但是很显然这题不是的数位 dp 通常解决的 ...