python自动化操作应用程序,python快速上手 自动化

大家好,本文将围绕python怎么编写自动化脚本展开说明,python自动化操作应用程序是一个很多人都想弄明白的事情,想搞清楚python快速上手 自动化需要先了解以下几个事情。

本文以一个页面例子说明运行自动化脚本需要哪些步骤及实现过程中的报错汇总。具体实现功能:登录操作

进入三级菜单

新建页面输入文本框值,输入时间,进入iframe,点击提交按钮

一、自动化实现步骤

1. 首先需要导入模块名

有些功能selenium框架已经封装好了,只需要我们直接调用就好学python什么书比较好用

常用的导入功能:

from selenium import webdriver #导入webdriver驱动

from time import sleep #导入sleep函数

from selenium.webdriver.common.action_chains importActionChains #导入

ActionChains 函数

from selenium.webdriver.support.select import Select#导入select函数webdriver驱动:通过webdriver驱动来调用浏览器

sleep函数:正常网页加载过程中,如果不通过时间等待再点击元素是无法定位到元素,从而报错,sleep函数是自动化过程中经常用到的功能

ActionChains函数:ActionChains是模拟鼠标事件的函数

2. 启动浏览器

所有的自动化操作都是基于页面打开的前提下,所以我们的首要步骤显示要启动浏览器。

在Selenium中可以启动任何浏览器,前提是需要下载相应的浏览器驱动这里以chrome浏览器为例,代码实现:

chrome_options = webdriver.ChromeOptions()

chrome_options.add_experimental_option("excludeSwitches", ['enable-automation'])

driver = webdriver.Chrome(options=chrome_options)

driver.maximize_window()

3. 功能实现

3.1 元素定位

刚接触自动化的同学可能都被元素定位搞的晕头转向。

元素定位有八大方式(id、tagname、class、xpath等等),到底使用哪一种呢

所有的元素定位方式我都用到了,还是不能定位到元素这到底是什么原因呢?

刚开始我也是这样,经过一段时间的摸索发现原来是这样~~元素定位-id,id是唯一,通过id可定位任何元素

元素定位-xpath定位:其他定位方式都不会,只要会xpath就能搞定定位问题

定位不到:考虑时间、窗体、ifame等因素

3.2 元素方法

1).click()-单击(最常用)

driver.find_element_by_id('dlu').click()

2)send_keys文本框输入内容

driver.find_element_by_id('password').send_keys('11qq!!')

实现功能:登录功能

driver.find_element_by_name("username").send_keys('b')#定位用户名,输入值

driver.find_element_by_id('password').send_keys('11qq!!')#定位密码,输入值

driver.find_element_by_id('dlu').click()#点击登录按钮

3)double_click 双击

ActionChains(driver).double_click(ul1).perform()

实现功能:双击进入三级菜单

ul1=driver.find_element_by_xpath("//*[text()='质量基础']")

ActionChains(driver).double_click(ul1).perform()#双击一级菜单

ul2=driver.find_element_by_xpath("//*[text()='供应商产品质量维持认证']")

ActionChains(driver).double_click(ul2).perform()#双击二级菜单

ul3=driver.find_element_by_xpath("//*[text()='供应商产品质量维持认证计划']")

ActionChains(driver).double_click(ul3).perform()#双击三级菜单

sleep(3)

4) iframe标签,这块属于自动化的重点及难点

driver.switch_to.frame('data_iframe')#进入标签

driver.switch_to.parent_frame() #跳回到上层标签

driver.switch_to.default_content()#退出标签

实现功能:三个 iframe 间切换操作

#主页面点击新建

driver.switch_to.frame('data_iframe')#主页面窗体

driver.find_element_by_xpath('//*[@id="grid"]/div[1]/a[1]').click()

sleep(3)

# 第二个iframe填写内容新建

#下拉菜单非select类型,直接定位选择内容

iframe1 = driver.find_element_by_xpath('//*[@title="新建页面"]')

driver.switch_to.frame(iframe1) #新建页面标签

iframe2=driver.find_element_by_xpath("//iframe[contains(@src,'/quality-web/certifischeController/input')]")

driver.switch_to.frame(iframe2)#新建页嵌套标签

driver.find_element_by_xpath('//*[@id="myform"]/table/tbody/tr[2]/td[8]/span/span/span[1]').click()

sleep(2)

driver.find_element_by_xpath("//*[text()='2020财年当年4月']").click()

sleep(2)

driver.find_element_by_xpath('//*[@id="myform"]/table/tbody/tr[3]/td[2]/span/span').click()

sleep(1)

driver.find_element_by_xpath("//*[text()='111']").click()

sleep(1)

#完成时间控件选择

js = "$('.kendoDate').removeAttr('readonly')" # jQuery,移除属性

# js = "$('input:eq(0)').attr('readonly',false)" # jQuery,设置为false

driver.execute_(js)

sleep(2)

driver.find_element_by_xpath('//*[@id="myform"]/table/tbody/tr[3]/td[4]/span/span/input').send_keys("2020-06-22")

#认证日期

driver.find_element_by_xpath('//*[@id="mybody"]/tr/td[7]/span/span/input').send_keys('2020-06-22')

driver.find_element_by_xpath('//*[@id="mybody"]/tr/td[8]/span/span/input').send_keys('2020-06-22')

#文本框输入

driver.find_element_by_xpath('//*[@data-isq="工作项目"]').send_keys("您好")

sleep(1)

driver.find_element_by_xpath('//*[@data-isq="详细计划"]').send_keys("您好")

sleep(1)

#

driver.find_element_by_xpath('//*[@data-isq="供应商名称"]').send_keys("您好")

sleep(1)

driver.find_element_by_xpath('//*[@data-isq="制造地址/邮编"]').send_keys("您好")

sleep(1)

driver.find_element_by_xpath('//*[@data-isq="电话/传真"]').send_keys("您好")

sleep(1)

driver.find_element_by_xpath('//*[@data-isq="认证产品"]').send_keys("您好")

sleep(1)

#树形结构

#批准人

driver.find_element_by_xpath('//*[@data-isq="计划审核人"]').click()

people=driver.find_element_by_xpath('//*[@title="人员选择"]')

driver.switch_to.frame(people) #进入选人 ifame

sleep(2)

driver.find_element_by_id('searchbox').send_keys('b')

sleep(2)

driver.find_element_by_xpath('//*[@id="myeorgrid"]/div[2]/table/tbody/tr[1]/td[2]').click()

sleep(2)

driver.find_element_by_xpath('//*[@id="okButton"]').click()

sleep(2)

#计划批准人

driver.switch_to.parent_frame()) #人员选择成功后,返回上级弹窗

driver.find_element_by_xpath('//*[@data-isq="计划批准人"]').click()

people=driver.find_element_by_xpath('//*[@title="人员选择"]')

driver.switch_to.frame(people)#进入批准人弹窗

sleep(2)

driver.find_element_by_id('searchbox').send_keys('b')

sleep(2)

driver.find_element_by_xpath('//*[@id="myeorgrid"]/div[2]/table/tbody/tr[1]/td[2]').click()

sleep(2)

driver.find_element_by_xpath('//*[@id="okButton"]').click()

sleep(2)

#跳回 frame1

driver.switch_to.parent_frame() 返回上层

driver.switch_to.parent_frame()返回上层

driver.find_element_by_id("buttons2").click()

driver.find_element_by_xpath('//*[@id="header"]/div[2]/div[2]/span[4]/a').click()

driver.switch_to.default_content()#退出标签

5) 时间控件

时间控件正常操作是点击并选择时间

自动化 input 标签由于 readonly 属性,所以日期控件是不允许输入的,那么我们主要通过 js 来删除或者 readonly 制成否,这样可以直接允许输入。

js = "$('.kendoDate').removeAttr('readonly')" # jQuery,移除属性

driver.execute_(js) #执行 js 脚本

实现功能

js = "$('.kendoDate').removeAttr('readonly')" # jQuery,移除属性

driver.execute_(js)

sleep(2)

driver.find_element_by_xpath('//*[@id="myform"]/table/tbody/tr[3]/td[4]/span/span/input').send_keys("2020-06-22")#输入固定日期

#认证日期

driver.find_element_by_xpath('//*[@id="mybody"]/tr/td[7]/span/span/input').send_keys('2020-06-22')

driver.find_element_by_xpath('//*[@id="mybody"]/tr/td[8]/span/span/input').send_keys('2020-06-22')

6) 键盘操作

driver.find_element_by_class().send_keys(Keys.CONTROL+'a')

4. 执行完操作后关闭浏览器

driver.quit()

二、报错处理方案

1.pycharm引入包报错, 选中模块名称 【右键】-> 【mark directory as 】-> 【sources root】

2.pycharm中如何调节字体大小位置

菜单栏:file ----> setting —> editor —>font —> size 修改为需要大小字号例如20,点击ok消息弹窗 3

打开F12,在source里面点击暂停脚本执行,把元素定住,然后再去写xpath定位

4. 测试报告点击浏览器打开提示“系统找不到文件 chrome”

出现该报错主要是因为你没有进行chrome浏览器安装路径的配置,解决方法很简单:打开pycharm–》File–》setting–》Tools–》Web Browsers

在Default Browser一栏勾选Custom Path(敲黑板)

然后将chrome的路径改为安装路径即可,如图所示:

5.运行脚本,提示chrome正在受到自控软件控制-属于chrome浏览器特有的问题

首先查看浏览器版本75版本以下:

option = webdriver.ChromeOptions()

option.add_argument('disable-infobars')

driver = webdriver.Chrome(chrome_options=option)

url=''

driver.get(url)

————————————————

75 版以上

chrome_options = webdriver.ChromeOptions();

chrome_options.add_experimental_option("excludeSwitches",['enable-automation']);

driver = webdriver.Chrome(options=chrome_options);

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python编程快速上手可以帮助我们实现繁琐工作的自动化Python是一种简单易学的编程语言,能够简化我们的工作流程,提高工作效率。 首先,Python具有丰富的函数库和开源工具,使得编写自动化脚本变得更加容易。我们可以使用Python来编写脚本,通过调用不同的库函数来完成各种任务,例如文件操作、数据处理、网络请求等。这些库函数已经被开发者广泛使用和测试,可以为我们节省大量的时间和精力。 其次,Python编程语言具有简洁的语法和优雅的代码风格。相比其他的编程语言,Python的代码更易读、易理解,这使得我们可以更快地上手并编写出高效的自动化脚本。Python的语法结构简单明了,可以大大缩减代码量,提高编码效率。 此外,Python还有丰富的第三方库和工具,如TensorFlow、Pandas、Numpy等,可以方便地进行数据分析、人工智能、机器学习等领域的工作。这些工具以及其提供的函数和方法大大简化了复杂任务的处理,帮助我们快速解决实际问题。 总的来说,Python编程快速上手能够让我们更方便地进行繁琐工作的自动化。它的简单易学、优雅的代码风格以及丰富的函数库和工具使得我们能够高效地编写自动化脚本,提高工作效率,减少重复劳动,为我们节约时间和精力。无论是处理数据、完成文件操作,还是进行网络请求,Python都可以成为我们的得力助手。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值