python实例编写(3)--对话框,多窗口,下拉框,上传文件
一.对话框:
例:点击百度的登录,弹出的小窗口
#coding=utf-8 from selenium import webdriver from time import sleep dr=webdriver.Chrome() dr.get("http://www.baidu.com") #一定要记得设置等待时间,要不然定位不到!!! dr.find_element_by_link_text("登录").click() sleep(3) #思路:二次定位,点击登录后,定位登录的弹出框,用id或class_name都可以!!然后定位登录框的姓名输入框 #login=dr.find_element_by_id("TANGRAM__PSP_8__userName") 直接定位,定位不到!!!!! #login=dr.find_element_by_class_name("tang-content").find_element_by_name("userName") login=dr.find_element_by_id("TANGRAM__PSP_8__form").find_element_by_id("TANGRAM__PSP_8__userName") login.send_keys("17710192039") dr.find_element_by_name("password").send_keys("a7s5dfg!") dr.find_element_by_id("TANGRAM__PSP_8__submit").submit()
二.多窗口,从一个页面跳转到另外一个页面
思路:先定位百度登录的句柄,然后跳转到注册页面,点击转到非登录页面的句柄!!!!!
#coding=utf-8 from selenium import webdriver from time import sleep dr=webdriver.Chrome() dr.get("http://passport.baidu.com") #一定要记得设置等待时间,要不然定位不到!!! nowhandle=dr.current_window_handle allhandles0=dr.window_handles #当前登录页面只有一个句柄 print "现在是登录页面" print nowhandle for h in allhandles0: print h #跳转到注册页面一共有两个句柄(包含登录页面的) print "现在进入注册页面" dr.find_element_by_link_text("立即注册").click() sleep(3) allhandles=dr.window_handles for handle in allhandles: print handle for handle in allhandles: if handle!=nowhandle: dr.switch_to_window(handle) sleep(3) #关闭当前窗口 dr.close() #转到登录首页 dr.switch_to_window(nowhandle)
三.弹出框处理 alert:使用switch_to_alert() (accept,dismiss,send_keys)
#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from time import sleep dr=webdriver.Chrome() dr.get("http://www.baidu.com") #此处为百度页面的设置,涉及下拉框的处理!!!处理思路:一般是两次点击,一次点击弹出下拉框,另一次点击选项,如果是鼠标移动上弹出的用 move_to_element() #先定位到“设置” dr.find_element_by_link_text("设置").click() sleep(3) sou=dr.find_element_by_class_name("pf") sou.click() #ActionChains(dr).move_to_element(sou).perform() 这种的一般用于找父元素,下拉框.子元素,移动到子元素上 sleep(3) #点击“确定”,用accept() dr.switch_to_alert().accept() #点击取消",用dismiss() dr.switch_to_alert().dismiss() #输入内容,直接用send_keys() dr.switch_to_alert().send_keys() #输出内容 print dr.switch_to_alert().text
四.上传文件,直接定位点击按钮,并send_keys即可(路径必须正确)
upload.html
<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>upload_file</title> <link href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" /> </head> <body> <div class="row-fluid"> <div class="span6 well"> <h3>upload_file</h3> <input type="file" name="file" /> </div> </div> </body> <script src="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.js"></script> </html>
uoload.py
#coding=utf-8 from selenium import webdriver from time import sleep import os dr=webdriver.Chrome() #打开上传文件的页面 file_path='file:///'+os.path.abspath('upload.html') dr.get(file_path) sleep(3) #点击”选择文件“按钮, dr.find_element_by_name("file").send_keys('D:\\zhihu.cookie.txt') sleep(3)
效果如下:
python实例编写(3)--对话框,多窗口,下拉框,上传文件的更多相关文章
- select2的多选下拉框上传
1.加入multiple: true,属性实现多选下拉框样式 2.下拉框选择后的值是数组类型不要经过数据处理才能进行表单提交 提交的时候原下拉框所在的标签不提交,而是将多选后的值存入页面中的一个隐藏标 ...
- Python+selenium之获取文本值和下拉框选择数据
Python+selenium之获取文本值和下拉框选择数据 一.结合实例进行描述 1. 实例如下所示: #新增标签操作 def func_labels(self): self.driver.find_ ...
- python实例编写(7)---测试报告与测试套件(多个py文件,1个py文件内多个用例)
一. 一个.py文件批量执行测试用例(一个.py文件下多个用例执行) 如果直接使用:unittest.main(),则按字母顺序执行, 对于前后之间又依赖关系的用例,需要按特定的顺序执行,则使用 s ...
- 《selenium2 python 自动化测试实战》(10)——下拉框和alert
# coding: utf-8 from selenium import webdriverfrom selenium.webdriver.common.action_chains import Ac ...
- 【selenium】基于python语言,如何用select选择下拉框
在项目测试中遇到了下拉框选择的控件,来总结下如何使用select选择下拉框: 下图是Select类的初始化描述,意思是,给定元素是得是select类型,不是就抛异常.接下来给了例子:要操作这个sele ...
- Python脚本控制的WebDriver 常用操作 <二十六> 上传文件
测试用例场景 上传文件的方法是找到上传文件的对象,通常是的对象.然后直接往这个对象send_keys,传入需要上传文件的正确路径.绝对路径和相对路径都可以,但是上传的文件必须存在,否则会报错. Pyt ...
- C#在WinForm下使用HttpWebRequest上传文件
转自:http://blog.csdn.net/shihuan10430049/article/details/3734398 这段时间因项目需要,要实现WinForm下的文件上传,个人觉得采用FTP ...
- windows、linux下通过ftp上传文件小脚本
一.windows @echo off #open ip 将要上传文件的IP地址echo open IP>ftp.up #用户名echo ninic>>ftp.up #密码echo ...
- windows下使用 fdfs_client 上传文件
在上一篇中介绍了使用 FastDFS 与 Nginx 在 Linux 系统上实现分布式图片服务器,现在介绍在 windows 系统下使用该分布式图片服务器. 需要安装 fdfs_client 模块和配 ...
- [转]C#在WinForm下使用HttpWebRequest上传文件并显示进度
/// <summary> /// 将本地文件上传到指定的服务器(HttpWebRequest方法) /// </summary> /// <param name=&qu ...
随机推荐
- tomcat 组件研究二--请求过程
上一篇博客大概总结了tomcat 的组件以及其组织方式,对于tomcat 的启动过程也进行进行了简单的总结,下面这篇博客,继续研究tomcat 处理请求的相关组件,其实就是主要研究Connectors ...
- 深入解析Javascript异步编程
这里深入探讨下Javascript的异步编程技术.(P.S. 本文较长,请准备好瓜子可乐 :D) 一. Javascript异步编程简介 至少在语言级别上,Javascript是单线程的,因此异步编程 ...
- JAVA 验证码生成(转)
最近做了一下验证码的功能,网上找了一篇还不错,引用下:http://blog.csdn.net/ruixue0117/article/details/22829557 这篇文章非常好,但是web和js ...
- WireX:Android智能手机组成的DDoS僵尸网络
阿里聚安全小编曾多次报道了官方应用市场出现恶意软件的事件,让大家在下载APP的时候三思而后行. 最近多家安全公司组成的安全研究小组发现了一个新的.传播广泛的僵尸网络,它是由成千上万的Android智能 ...
- 阿里云ECS部署ES
背景 最近越来越多的公司把业务搬迁到云上,公司也有这个计划,自己抽时间在阿里云和Azure上做了一些小的尝试,现在把阿里云上部署ES和kibana记录下来.为以后做一个参考,也希望对其他人有帮助. 这 ...
- 使用VMware Workstation安装win7镜像文件时遇见的错误
最近打算使用虚拟机安装个系统玩玩,就去网站上找了教程安装下win7系统.但是在安装过程中遇见两个问题,现在把遇见的问题总结记录一下,以及解决方法罗列一下. 我当时使用的是VMware 12版的,系统是 ...
- DispatcherTimer和Timer(计时器)
System.Windows.Threading.DispatcherTimer dTime; System.Timers.Timer timer; public Main ...
- C++中4个类型转换相关的关键字/特点/应用场合
reinterpret_cast是C++里面的一个强制类型转换符,能够将任何的指针类型转换成其他的任何指针类型:能够将任何的整数类型转换成指针类型,反之亦然:滥用reinterpret_cast强制类 ...
- 项目管理svn
https://nchc.dl.sourceforge.net/project/tortoisesvn/1.9.6/Application/TortoiseSVN-1.9.6.27867-x64-sv ...
- 移动端踩坑之旅-ios下fixed、软键盘相关问题总结
最近一个项目掉进了移动端的大坑,包括ios下fixed布局,h5唤起键盘等问题,作为一个B端程序员,弱项就是浏览器的兼容性和移动端的适配(毕竟我们可以要求使用chrome),还好这次让我学习了一下相关 ...