记录

您所在的位置:网站首页 selenium模拟点击下一页 记录

记录

2024-03-18 15:14| 来源: 网络整理| 查看: 265

最近测试规则,网页上每条测试只能手动点测试,想写个脚本实现自动点击,网上收集资料可以用selenium实现,模拟人操作。

import selenium from selenium import webdriver from selenium.webdriver.common.by import By 现收集如下材料:

使用selenium模拟打开谷歌浏览器:

1、要下载浏览器版本对应的ChromeDriver驱动包:下载网址 2、打开谷歌浏览器 # 找打刚才安装的chromedriver.exe的位置 browser = webdriver.Chrome(executable_path =r'D:\chromedriver.exe')

此时电脑就会新打开谷歌浏览器,并显示受到自动测试软件控制 在这里插入图片描述

3、打开某个网址: browser.get('https://www.baidu.com/')

ps:也可以在此浏览器中自行操作打开网址,找到想要操作的页面,此时停留的页面,就是程序里可以操作的页面。

4、元素定位

参考:史上最全!Selenium元素定位的30种方式

5、常用事件

点击:参考Selenium实现点击click()

6、程序延迟执行 import time time.sleep(360) # 延迟执行360秒 7、动态更改谷歌浏览器默认下载路径

整理的时候找不到是哪个大神写的了,当时用了他的代码下面贴出来:

def set_download_path(driver, path): """ 禁止下载弹窗,设置下载路径 """ # path = path.rstrip(os.sep) driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command') params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': path}} driver.execute("send_command", params) if not os.path.exists(path): os.makedirs(path)

--------------------------------------------------------分割------------------------------------------------------------------------------------------

在这里插入图片描述

第一需求是在这样一个页面中,等待上一条测试完成后,自动点击下一条‘开始测试’(测试完成的及进行中的就不会在出现‘开始测试’字样) 初级实现功能代码: 由于短时间没找打怎么监控进度到100%的方法,通过一个简单方法:每条测试大概需要5分钟左右,就设定每隔6分钟点击一次,也基本满足需求。 import selenium from selenium import webdriver from selenium.webdriver.common.by import By import time # 打开谷歌浏览器, browser = webdriver.Chrome(executable_path =r'D:\chromedriver.exe') # 手动找到需要操作的页面 for j in range(5): # 需要点击5页 f= browser.find_elements_by_link_text('开始测试') # 找到当前页所有的开始测试元素 for i in range(len(f)): # 循环每隔6分钟点击一个 f[i].click() time.sleep(360) browser.find_elements_by_class_name('ant-pagination-item-link')[2].click() # 这一页的开始测试都点完后,点击下一页 time.sleep(4) 改进版,发现有进度的时候会有class:ant-progress-text,text会显示进度百分之多少,测试成功后就会变成其他,所以通过判断当时是否有ant-progress-text来判断当前是否测试完毕,并可以开始下一条测试。 for j in range(5): f= browser.find_elements_by_link_text('开始测试') for i in range(len(f)): f[i].click() time.sleep(5) while True: try: browser.find_element_by_class_name('ant-progress-text').text # 如果没有ant-progress-text,会报错 time.sleep(30) except : break browser.find_elements_by_class_name('ant-pagination-item-link')[3].click() time.sleep(4) 第二个需求是对于测试完毕的需要下载测试结果,点击‘下载测试结果’会下载一个csv文件,下面实现自动下载,且每个文件保存在新文件中,文件夹以测试名称命名。 r = browser.find_elements_by_link_text('下载测试结果') # 找下载测试结果 a = browser.find_elements_by_xpath("//tbody//tr") # 找每条测试的名称 for i in range(9): file_name = a[i].text.split(' ')[2] path = r'C:\Users\99452\Desktop\下载结果\{}'.format(file_name) set_download_path(browser,path) # 用到上述第7点更改默认文件夹的函数 time.sleep(10) r[i].click() time.sleep(20)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3