[Python][Selenium]网页操作脚本
发布日期:2021-05-28 16:50:24
浏览次数:25
分类:技术文章
本文共 2777 字,大约阅读时间需要 9 分钟。
from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.support.select import Selectfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.common.exceptions import TimeoutExceptionclass getDB: def __init__(self,login,passwd): self.login = login self.passwd = passwd def getBugDB(self,url,isClosed): opt = webdriver.ChromeOptions()#使用Chrome浏览器作为驱动器 driver = webdriver.Chrome(options=opt) driver.set_page_load_timeout(2)#网页加载2秒后就执行登录操作,无需等待网页完全加载完毕 try: driver.get(url) except TimeoutException: driver.maximize_window() username = driver.find_element_by_xpath('//*[@id="account"]') username.send_keys(self.login) password = driver.find_element_by_xpath('//*[@id="loginPanel"]/div/div[2]/form/table/tbody/tr[2]/td/input') password.send_keys(self.passwd) login_button = driver.find_element_by_xpath('//*[@id="submit"]') login_button.click() time.sleep(2) if isClosed:#通过判定条件来决定是下载所有BUG的数据库,或是未关闭BUG的数据库 #选择所有BUG页面 scale = driver.find_element_by_xpath('//*[@id="mainMenu"]/div[2]/a[1]') ActionChains(driver).move_to_element(scale).perform() driver.find_element_by_xpath('//*[@id="mainMenu"]/div[2]/a[1]').click() # 点击导出数据按钮 output = driver.find_element_by_xpath('//*[@id="mainMenu"]/div[3]/div/button') ActionChains(driver).move_to_element(output).perform() driver.find_element_by_xpath('//*[@id="mainMenu"]/div[3]/div/button').click() driver.find_element_by_xpath('//*[@id="exportActionMenu"]/li/a').click() else: #选择未关闭BUG页面 output = driver.find_element_by_xpath('//*[@id="mainMenu"]/div[3]/div/button') ActionChains(driver).move_to_element(output).perform() driver.find_element_by_xpath('//*[@id="mainMenu"]/div[3]/div/button').click() # 点击导出数据按钮 driver.find_element_by_xpath('//*[@id="exportActionMenu"]/li/a').click() #定制导出csv文件的格式 driver.switch_to.window(driver.window_handles[-1]) output_frame = driver.find_element_by_xpath('//*[@id="iframe-triggerModal"]') driver.switch_to.frame(output_frame) driver.find_element_by_xpath('//*[@id="encode"]/option[2]').click() driver.find_element_by_xpath('//*[@id="exportType"]/option[1]').click() #点击导出按钮 driver.find_element_by_xpath('//*[@id="submit"]').click() time.sleep(10) bug = getDB(login, passwd)bug.getBugDB(url_1,True)bug.getBugDB(url_2,True)
转载地址:https://blog.csdn.net/qq_33868661/article/details/114326654 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年09月16日 21时40分16秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php获取来访者在搜索引擎搜索某个关键词,进入网站
2019-06-07
物联网架构成长之路(8)-EMQ-Hook了解、连接Kafka发送消息
2019-06-07
2018-2019-1 20165234 20165236 实验二 固件程序设计
2019-06-07
IDEA的GUI连接数据库写入SQL语句的问题总结
2019-06-07
Xpath在选择器中正确,在代码中返回的是空列表问题
2019-06-07
leecode第一百九十八题(打家劫舍)
2019-06-07
07-3. 数素数 (20)
2019-06-07
写一个欢迎页node统计接口Py脚本(邮件,附件)-py
2019-06-07
计算两个日期之间的天数
2019-06-07
袋鼠云日志,日志分析没那么容易
2019-06-07
缓存穿透 缓存雪崩 缓存并发
2019-06-07
了解你的Linux系统:必须掌握的20个命令
2019-06-07
js setInterval 启用&停止
2019-06-07
knockoutJS学习笔记04:监控属性
2019-06-07
Linux下启动/关闭Oracle
2019-06-07
session和cookie的区别
2019-06-07
oracle 数据库、实例、服务名、SID
2019-06-07
web.xml文件的作用
2019-06-07