Python之Selenium自动化浏览器测试详解
作者:Harris-H 发布时间:2022-08-19 00:04:55
标签:Python,Selenium,自动化,测试
Python之Selenium(自动化浏览器测试)
1.安装selenium
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
2.下载对应版本的浏览器驱动
http://npm.taobao.org/mirrors/chromedriver/
这是我的。
把解压后的驱动放在自己的python.exe 目录下。
3.测试code,打开一个网页,并获取网页的标题
from selenium.webdriver import Chrome
if __name__ == '__main__':
web = Chrome()
web.get("https://baidu.com")
print(web.title)
4.一个小样例
from selenium.webdriver import Chrome
if __name__ == '__main__':
web = Chrome()
url = 'https://ac.nowcoder.com/acm/home'
web.get(url)
# 获取要点击的a标签
el = web.find_element_by_xpath('/html/body/div/div[3]/div[1]/div[1]/div[1]/div/a')
# 点击
el.click() # "/html/body/div/div[3]/div[1]/div[2]/div[2]/div[2]/div[1]/h4/a"
# 爬取想要的内容
lists = web.find_elements_by_xpath("/html/body/div/div[3]/div[1]/div[2]/div[@class='platform-item js-item ']/div["
"2]/div[1]/h4/a")
print(len(lists))
for i in lists:
print(i.text)
5.自动输入并跳转
from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys
import time
if __name__ == '__main__':
web = Chrome()
url = 'https://ac.nowcoder.com/acm/home'
web.get(url)
el = web.find_element_by_xpath('/html/body/div/div[3]/div[1]/div[1]/div[1]/div/a')
el.click()
time.sleep(1)
input_el = web.find_element_by_xpath('/html/body/div/div[3]/div[1]/div[1]/div[1]/form/input[1]')
input_el.send_keys('牛客', Keys.ENTER)
# do something
来源:https://harris.blog.csdn.net/article/details/116406200


猜你喜欢
- 最近在做一个站点时,需要生成静态页面,但是生成的静态页面中有些内容是需要动态获取的,怎不能每天生成一下吧。。 最后上网查了一下,再加上个要总
- 前言用命令行方式调用用例是我们最常用的方式,这方面确实比java的TestNG框架要好用许多,至少不用写xml文件,为了提供定制化运行用例的
- 前言: 首先刚开始知道要书写一个这样的功能我的内心是比较崩溃的 完全没有思路, 然后就打开官网的文档进行观
- 因为评论有很多人说爬取不到,我强调几点kv的格式应该是这样的:kv = {‘cookie':‘你复制的一长串cookie',
- 刚开始学习Python的类写法的时候觉得很是麻烦,为什么定义时需要而调用时又不需要,为什么不能内部简化从而减少我们敲击键盘的次数?你看完这篇
- 二元运算符作用于位,进行逐位运算。二元运算只是组合两个值以创建新值的规则。numpy.bitwise_and(): 此函数用于计算两个数组元
- 本文实例讲述了Python反射用法。分享给大家供大家参考,具体如下:class Person: def __init__(sel
- 我之前想写路由器的密码暴力破解器,我手上只有极路由,发现极路由有安全限制,只能允许连续10密码错误,所以我改拿博客园练手。博客园的博客有个功
- 这两天看了下某位大神的github,知道他对算法比较感兴趣,看了其中的一个计算数字的步数算法,感觉这个有点意思,所以就自己实现了一个。算法描
- 系统自带模块(库)```cppimport retarget = 'abc1234xyz're.search('(\
- 目录一、安装Py2neo二、连接Neo4j数据库1. 使用graph.run执行Cypher语句创建节点2. 使用Node数据结构创建节点3
- 在scipy.linalg的函数中,往往会提供两种参数,其一是check_finite,当为True时将进行有限检查,另一类是overwri
- I. 前言在上一篇文章深入理解PyTorch中LSTM的输入和输出(从input输入到Linear输出)中,我详细地解释了如何利用PyTor
- 二进制日志二进制日志中以“事件”的形式记录了数据库中数据的变化情况,对于MySQL数据库的灾难恢复起
- 背景:由于最近公司项目好像有点受不住并发压力了,优化迫在眉睫。由于当前系统是单数据库系统原因,能优化的地方也尽力优化了但是数据库瓶颈还是严重
- 这是模拟淘宝的一个简易的购物商城程序。用户入口具有以下功能:登录认证可以锁定用户密码输入次数大于3次,锁定用户名连续三次输错用户名退出程序可
- 当大家发现数据库查询性能很慢的时候,大家都会想到加索引来优化数据库查询性能,但是面对一个复杂的SQL语句,找到一个优化的索引组合对人脑来讲,
- 项目中需要对 api 的接口进行限流,但是麻烦的是,api 可能有多个节点,传统的本地限流无法处理这个问题。限流的算法有很多,比如计数器法,
- 本文实例讲述了python中dir函数用法。分享给大家供大家参考。具体分析如下:dir 函数返回任意对象的属性和方法列表,包括模块对象、函数
- 本文推荐一款twitter做的bootstrapValidator.js,本身bootstrap就是twitter做的,那么使用原配的val