代码如下:

1 #导包
2 from selenium importwebdriver3 from time importsleep4 #选择谷歌浏览器打开事务所网站
5 driver=webdriver.Chrome()6 url="https://sws.nbhtxx.com.cn/"
7 driver.get(url)8 #窗口最大化
9 driver.maximize_window()10 #选择用户名框,输入用户名XXXXXXXX
11 driver.find_element_by_xpath('//input[@name="userid"]').send_keys("XXXXXXXX")12 #选择密码框,输入密码XXXXXXXX
13 driver.find_element_by_xpath('//input[@name="password"]').send_keys("XXXXXXXX")14 #点击登录按钮
15 driver.find_element_by_xpath('//button[@class="login-btn"]').click()16 #登录后停顿1秒
17 sleep(1)18 #点击左边票据管理按钮
19 driver.find_element_by_xpath('//ul[@class="layui-nav layui-nav-tree"]/li[3]').click()20 #点击票据管理层级下的单据管理按钮
21 driver.find_element_by_xpath('//a[@data-url="/home/bill/ndjgl.html"]').click()22 #停顿1秒,进入iframe页面
23 sleep(1)24 #iframe=driver.find_element_by_xpath('//*[@id="top_tabs_box"]/div/div[3]/iframe')
25 driver.switch_to.frame(driver.find_element_by_xpath('//iframe[contains(@src,"/home/bill/ndjgl")]'))26 #停顿1秒,点击iframe页面中的新增按钮
27 sleep(1)28 driver.find_element_by_xpath('//*[@class="layui-btn-group"]/button[2]').click()29 #退出到外面,再进第二个iframe
30 driver.switch_to.default_content()31 #切到第一个iframe
32 sleep(1)33 driver.switch_to.frame(driver.find_element_by_xpath('//iframe[contains(@src,"/home/bill/ndjgl")]'))34 #切到第二个iframe
35 sleep(1)36 driver.switch_to.frame(driver.find_element_by_xpath('//iframe[contains(@src,"djdr-add")]'))37 #点击销方名称右边的按钮
38 sleep(1)39 driver.find_element_by_xpath('//*[@id="lzkp-box"]/tbody/tr/td[2]/table/tbody/tr[1]/td/table/tfoot/tr[1]/td[1]/i').click()40 #获取销方信息的弹窗,从最外面切进去3层iframe
41 driver.switch_to.default_content()42 driver.switch_to.frame(driver.find_element_by_xpath('//iframe[contains(@src,"/home/bill/ndjgl")]'))43 sleep(1)44 driver.switch_to.frame(driver.find_element_by_xpath('//iframe[contains(@src,"djdr-add")]'))45 sleep(1)46 driver.switch_to.frame(driver.find_element_by_xpath('//iframe[contains(@src,"xfxx")]'))47 #在销方信息弹窗的文本框输入"TEST"
48 driver.find_element_by_xpath('//*[@id="name"]').send_keys("TEST")49 #点击查询按钮,找到简码为TEST的企业
50 sleep(1)51 driver.find_element_by_xpath('//button[@class="layui-btn  search"]').click()52 #点击简码为TEST的企业税号
53 sleep(1)54 driver.find_element_by_xpath('//*[@class="layui-table"]/tbody/tr[1]/td[2]').click()55 #回退到发票填开界面,也就是销方信息弹窗的上一个iframe页面
56 #这里有两种方法切入:1.从最外面切入两层进去;2.从销方信息的iframe回退上去到发票填开的iframe
57 driver.switch_to.parent_frame()58 #回到发票填开页面后,点击购方名称最右边的按钮
59 sleep(1)60 driver.find_element_by_xpath('//*[@id="lzkp-box"]/tbody/tr/td[2]/table/tbody/tr[1]/td/table/thead/tr[1]/td[1]/i').click()61 #此时弹出购方信息的窗口iframe
62 #我们本来就在发票填开的第二个iframe,只需要再切入一层即可。
63 driver.switch_to.frame(driver.find_element_by_xpath('//iframe[contains(@src,"gfxx")]'))64 #切入到购房信息的iframe后,选择输入框,输入客户名称:王昭君
65 sleep(1)66 driver.find_element_by_xpath('//*[@id="name"]').send_keys("王昭君")67 #点击查询按钮,搜索到客户名称为王昭君的企业
68 driver.find_element_by_xpath('//button[@class="layui-btn search"]').click()69 #点击客户税号为91330200573697175C的企业
70 sleep(1)71 driver.find_element_by_xpath('//*[@class="layui-table"]/tbody/tr[1]/td[2]').click()72 #又回到了发票填开界面,也就是第二个iframe页面,所以要从购方名称弹窗iframe回退
73 driver.switch_to.parent_frame()74 #这样就回退到开票页面的iframe,可以直接操作页面上的元素了,点击操作列:货物或应税劳务、服务名称右边的按钮
75 sleep(1)76 driver.find_element_by_xpath('//*[@id="tr0"]/td[1]/i').click()77 #此时弹出了商品信息窗口,又是一层iframe,需要从开票信息第二层的iframe切进去
78 sleep(1)79 driver.switch_to.frame(driver.find_element_by_xpath('//iframe[contains(@src,"goods")]'))80 #切入商品信息iframe后,在商品名称框输入:11号慢羊羊
81 driver.find_element_by_xpath('//*[@id="name"]').send_keys("11号慢羊羊")82 #点击查询按钮,搜索到商品名称为11号慢羊羊的商品
83 driver.find_element_by_xpath('//button[@class="layui-btn search"]').click()84 #帅选出这条商品后,点击它的税收分类编码确定这条商品
85 sleep(1)86 driver.find_element_by_xpath('//*[@class="layui-table"]/tbody/tr/td[2]/div').click()87 #退回到开票页面的iframe,在备注栏输入:哈哈哈,就是这么强大!
88 driver.switch_to.parent_frame()89 sleep(1)90 driver.find_element_by_xpath('//*[@id="bz"]').send_keys("人生苦短,我用Python!")91 #选择数量框输入:10
92 driver.find_element_by_xpath('//*[@id="spsl_0"]').send_keys("10")93 #点击金额(含税)框
94 driver.find_element_by_xpath('//*[@id="je_0"]').click()95 #点击开票按钮
96 driver.find_element_by_xpath('//*[@class="layui-inline pull-right"]/button[7]').click()97 #至此事务所一体化开票的脚本写完了,感谢CCTV~

转载于:https://www.cnblogs.com/chenshengkai/p/11298005.html

sws_kp操作(selenium webdriver+python)相关推荐

  1. Selenium WebDriver + python 自动化测试框架

    目标 组内任何人都可以进行自动化测试用例的编写 完全分离测试用例和自动化测试代码,就像写手工测试用例一下,编写excel格式的测试用例,包括步骤.检查点,然后执行自动化工程,即可执行功能自动化测试用例 ...

  2. selenium webdriver python 元素操作

    常用操作 click 点击某个元素 driver.find_element_by_id("su").click() clear driver.find_element_by_id( ...

  3. python webdriver点击指令_测开系列Selenium Webdriver Python(20)--Webdriver运行原理

    Webdriver运行原理 转帖请注明出处!谢谢 在开发Webdriver的自动化脚本过程中,Webdriver后台在创建WebDriver实例的过程中,先确认浏览器的原生组件中是否存在可匹配的版本. ...

  4. selenium webdriver (python)的基本用法一

    阅在线 AIP 文档: http://selenium.googlecode.com/git/docs/api/py/index.html 目录 一.selenium+python 环境搭建..... ...

  5. 测开系列Selenium Webdriver Python(21)--元素定位2

    以上学习的是element的基本属性和方法,那么验证点添加的技巧和方式是什么呢?我们知道自动化的过程就是人的手工测试的过程,在手工测试中需要人来判断业务是否达到需求要求,那么在自动化脚本中就要加入程序 ...

  6. selenium webdriver (python) 第一版PDF

    前言 如果你是一位有python语言基础的同学,又想通过python+ selenium去实施自动化,那么你非常幸运的找到了这份文档,我也非常荣幸能为你的自动化学习之路带来一丝帮助. 其实,我在sel ...

  7. Linux运行webdriver,linux - 在chrome中运行Selenium WebDriver python绑定

    我在使用Selenium时遇到了问题. 对于我的项目,我必须使用Chrome. 但是,在使用Selenium启动它后,我无法连接到该浏览器. 出于某种原因,Selenium无法单独找到Chrome. ...

  8. 转:selenium webdriver+python基本操作

    转自: http://blog.163.com/ly676830315@126/blog/static/1017337222013102310617946/ 导入模块: from selenium i ...

  9. selenium webdriver python 环境搭建

    1. 安装python https://www.python.org/getit/ 选择2.7版本,下载安装即可. 验证是否安装成功:打开cmd,输入"python -V",显示p ...

最新文章

  1. python中删除列表中的空元素以及如何读取excel中的数据
  2. java程序向mysql插入中文变问号
  3. linq to sql 插入值,以及如何取回自增的ID
  4. MySQL存储过程简介
  5. oracle 登录非系统用户,非Oracle用户使用操作系统验证登陆(/ as sysdba)
  6. excel中怎样用公式获取表单控件_老会计不愿教的工资表汇总公式,真是太好用了...
  7. 快速实现一个Http回调组件
  8. 从一个OutOfMemoryError 学会了分析Java内存泄漏问题
  9. IOS 代码控制控件始终居中
  10. 有关二叉树方法java实现
  11. 利用project编制进度计划
  12. 什么是DOS操作系统
  13. 生活中的逻辑谬误06.德克萨斯神枪手
  14. 计算机工程师标准着装,工程师穿什么样的衣服才好看
  15. @vuecomposition-apidistvue-composition-api.mjs in .node_modulesvue-demilibindex.mjs 报错
  16. 华为企业交换机ACL经典案例
  17. Google Map API 使用总结
  18. 数据库bigint转为JAVA中的String
  19. google maps v3 电子地图测距
  20. 论 “运营主导型的研发” 和 “产品主导型的研发”

热门文章

  1. ios 开发设置左滑退出_iOS 开发UITableView左滑出现删除按钮的运用方法
  2. 【XJTUSE 计算机组成与结构笔记】第六章 外存
  3. 小心肝队-冲刺日志(第六天)
  4. 小心肝队-冲刺日志(第二天)
  5. insert overwrite table 后面为什么不能用select *,怎么解决这个bug
  6. c#使用pop3服务器进行邮箱验证
  7. 微信支付商户号的调研
  8. 数学之美——信息的度量
  9. Symbian OS s60 3rd编程中实现IMSI、IMEI查询
  10. 企业高频实用API推荐