自动化测试,超有用。

PROXY,PLUGIN,PROFILE,WINDOWS HANDLE个个搞定!!!

from selenium import webdriver

from selenium.common.exceptions import NoSuchElementException

选择浏览器: driver = webdriver.Firefox()

打开url: driver.get("http://www.baidu.com")

等待: driver.implicitly_wait(30)

driver.set_page_load_timeout(30)

driver.set_script_timeout(30)

关闭浏览器: driver.quit()/driver.close()

前进/后退: driver.forward()/driver.back()

刷新: driver.refresh()

返回当前页面标题:driver.title

返回当前页面url:driver.current_url

返回当前浏览器的所有窗口:driver.window_handles

返回当前浏览器的窗口句柄:driver.current_window_handle

选择窗口: driver.switch_to_window(“window_name”)

对话框操作: driver.switch_to_alert() #选择窗口对象

accept()  #点击确认

dismiss() #点击取消

text       #获取文本值

send_keys(“key”)   #输入值

定位元素(单个):driver.find_element(by=”id”,value=None)

Id定位:  driver.find_element_by_id(“id_name”)

Name定位: driver.find_element_by_name(“name”)

Css定位:  driver.find_element_by_css_selector(“#foo”)

Xpath定位:driver.find_element_by_xpath(“//select[@id=’nr’]/option[2]”)

Link定位: driver.find_element_by_link_text(u”链接”)

Tag定位:  driver.find_element_by_tag_name(“foo”)

截取当前页面: driver.get_screenshot_as_file('/Screenshots/foo.png')

来一段。。。

profileDir = "C:/xxx/AppData/Roaming/Mozilla/Firefox/Profiles/xxx.default"
            profile = webdriver.FirefoxProfile(profileDir)
            profile.set_preference('network.proxy.type', 1)
            profile.set_preference('network.proxy.http', proxy[0])
            profile.set_preference('network.proxy.http_port', int(proxy[1]))
            profile.set_preference('network.proxy.ssl', proxy[0])
            profile.set_preference('network.proxy.ssl_port', int(proxy[1]))
            profile.update_preferences()
            browser = webdriver.Firefox(profile)
            try:
                browser.get(url))
                #browser.set_page_load_timeout(10)
                #browser.set_script_timeout(10)
                main_handle = browser.current_window_handle
                for i in range(1,x):
                    link = browser.find_elements_by_tag_name("a")
                    if link.is_displayed() == False:
                        continue
                    url = link.get_attribute("href")
                    if (url is None)  :
                        continue
                    link.click()
                   logging.info( )
                    all_handles =  browser.window_handles
                    for handle in all_handles:
                        if handle != main_handle:
                            browser.switch_to_window(handle)
                            browser.close()
                            browser.switch_to_window(main_handle)
                        else:
                            browser.back()
                browser.quit()

selenium太有爱,我已离不开!!!的更多相关文章

  1. ASP.NET Aries 2.0 发布(原来的源码SVN已关闭,开源源码已迁移到GitHub)

    主要更新: 1:增加子目录部署支持. 2:增加Taurus.MVC支持. 3:优化及Bug修复. 1:增加子目录部署支持: 其实在重写Aries框架的时候,我是去掉了目录部署功能的,主要是为了加快Ar ...

  2. 由于拷贝的文件太大,不可能一直开着SHELL,所以让SCP后台运行

    原文地址: http://blog.itpub.net/90618/viewspace-750822/ 1:开一个终端,scp命令运行后,输入密码让其拷贝 # scp chris@221.179.1. ...

  3. py+selenium+IE10【IE已停止工作】【已解决】

    问题:跑自动化时,到某个用例IE就崩,提示已停止工作.   手工跑的时候,IE挂,提示“Internet Explorer 已经为了帮助保护您的计算机而关闭此网页”. 且每次都在需要调用flash插件 ...

  4. 用selenium控制已打开的浏览器

    在使用selenium进行自动化测试会遇到,手工打开浏览器,做了一部分操作后,并打开相关页面后再执行相关的自动化脚本. 如何使用selenium来接管先前已打开的浏览器呢?醍提出一个Google Ch ...

  5. Selenium + Nightwatch 自动化测试环境搭建

    首先要安装 Java 7 或更高 ,(http://www.oracle.com/technetwork/java/javase/downloads/index.html) 并且 java 命令可正常 ...

  6. 【转】Selenium WebDriver + Python 环境

    转自:http://www.myext.cn/webkf/a_11878.html 1. 下载必要工具及安装包 1.1 [Python开发环境] 下载并安装Python 2.7.x版本 下载地址:ht ...

  7. 自动更新开奖数据的excel文件,供大家下载

    自动更新开奖数据的excel文件,供大家下载 2010-03-14 20:22 228492人阅读打印来源:乐彩网 作者:eren 很多人拥有自制excel电子表格,常要更新最基本的开奖信息.如有多期 ...

  8. Python全栈开发之 Mysql (一)

    一: 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库别说我们在写程序的时候创建的database就是一个数据库 2.什么是 MySQL.Oracle.SQLi ...

  9. selenium+BeautifulSoup+phantomjs爬取新浪新闻

    一 下载phantomjs,把phantomjs.exe的文件路径加到环境变量中,也可以phantomjs.exe拷贝到一个已存在的环境变量路径中,比如我用的anaconda,我把phantomjs. ...

随机推荐

  1. Linux系统编程(36)—— socket编程之UDP详解

    UDP 是User DatagramProtocol的简称,中文名是用户数据报协议.UDP协议不面向连接,也不保证传输的可靠性,例如: 1.发送端的UDP协议层只管把应用层传来的数据封装成段交给IP协 ...

  2. win7下自写驱动导致开机蓝屏调试过程

    之前没有接触过驱动调试.这里上手就要解决一个因为某个自定义驱动导致的系统登陆后蓝屏问题,记录下来.   问题: 从客户那边弄来的一个虚拟机,已知是加了我们的驱动之后才会导致蓝屏. 解决过程:   使用 ...

  3. 【转】YUV值对应的颜色

    版权声明:本文为博主原创文章,未经博主允许不得转载.欢迎大家积极评论,博主会一一答复! 最近有人在网上问我,YUV的值对应的颜色是如何的 下面给出YUV值对应的颜色关系 256张图512x512,每张 ...

  4. js让菜单栏一直悬浮在顶部,经典代码

    js让菜单栏一直悬浮在顶部,经典代码 很简单,你只需要把下面代码放到js中:$(function(){                //获取要定位元素距离浏览器顶部的距离        var na ...

  5. jTemplates——学习(1)

    这里介绍一个基于jQuery开发的模板引擎. jTemplates目前最新的版本是0.7.8,由tPython开发.官方网站:http://jtemplates.tpython.com 两个附件, 一 ...

  6. Git使用之基于SSH的Gitserver的client配置(下篇)

    1.  软件安装 Git-1.9.2-preview20140411 TortoiseGit-1.8.8.0-64bit.msi 1.1 安装msysgit 很easy,基本就是一路下一步,有几个地方 ...

  7. 开发专题指南: JEECG高速微云开发平台前言

    JEECG微云高速开发平台-前言 1. 前言 1.1. 技术背景 随着WEB UI 框架(EasyUI/Jquery UI/Ext/DWZ)等的逐渐成熟,系统界面逐渐实现统一化,代码生成器也能够生成统 ...

  8. GridView控件的光棒效应

    // 光棒效应 protected void gvBookInfos_RowDataBound(object sender, GridViewRowEventArgs e) { if(e.Row.Ro ...

  9. django: db - display

    本讲介绍数据在页面中的呈现,内容很简单,就是嵌套循环在模板中的使用. 一,修改 csvt03/urls.py: from django.conf.urls import patterns, inclu ...

  10. box-shadow全面解析

    一.box-shadow语法: box-shadow: none | inset(可选值,不设置,为外投影,设置,为内投影) x-offset(阴影水平偏移量,正方向为right) y-offset( ...