Selenium+Python [ˈpaɪθən]

0.Selenium安装

  pip install selenium

1.打开了浏览器,后边什么都不干了

  需要将浏览器驱动放置在环境变量的目录下。

2.打开了浏览器,提示停止以开发者模式运行

  原因为浏览器驱动与版本不匹配。

  换成相应版本驱动即可,镜像:https://npm.taobao.org/mirrors/chromedriver/

3.一篇写的很详细的博客:http://cuiqingcai.com/2599.html


4.常用函数:

  本质上来说这东西目前所知的部分就是模拟一下手工操作,对于常用的测试来说操作大概就这几类:

  4.1 选择一个对象

    find_element_by_id

    find_element_by_name

  find_element_by_xpath

         find_element_by_link_text

    find_element_by_partial_link_text

    find_element_by_tag_name

    find_element_by_class_name

    find_element_by_css_selector

    后面的不怎么用,关于xpath,看这里:http://www.w3school.com.cn/xpath/index.asp,麻烦得很。

  4.2 对选择的对象搞点事情

    element.send_keys() 输入点东西

    element.click() 戳一下

    Select(element).select_by_visible_text()  #from selenium.webdriver.support.ui import Select 选一个值

  4.3 其他操作

    driver.forward() 浏览器前进

    driver.back() 浏览器后退

    driver.switch_to_alert().accept() 弹框确定

    driver.switch_to_alert().dismiss() 弹框取消

    driver.implicitly_wait() 延迟一会,单位为秒

    element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement")) 等待至多一段时间或条件满足

  关于选取元素并搞事的部分可以简写一下,省的每次写两行还得新弄一个变量名。

from selenium.webdriver.support.ui import Select
def element_input_name(driver,name,text):
ele = driver.find_element_by_name(name)
ele.send_keys(text) def elements_input_name(driver,name,text,index):
ele = driver.find_elements_by_name(name)[index]
ele.send_keys(text) def element_click_name(driver,name):
ele = driver.find_element_by_name(name)
ele.click() def elements_click_name(driver,name,index):
ele = driver.find_elements_by_name(name)[index]
ele.click() def element_selct_name(driver,name,text):
ele = Select(driver.find_element_by_name(name))
ele.select_by_visible_text(text) def elements_selct_name(driver,name,text,index):
ele = Select(driver.find_elements_by_name(name))[index]
ele.select_by_visible_text(text) def element_input_id(driver,id,text):
ele = driver.find_element_by_id(id)
ele.send_keys(text) def element_click_id(driver,id):
ele = driver.find_element_by_id(id)
ele.click() def element_selct_id(driver,id,text):
ele = Select(driver.find_element_by_id(id))
ele.select_by_visible_text(text)

damn selenium的更多相关文章

  1. Python爬虫小白入门(四)PhatomJS+Selenium第一篇

    一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉 ...

  2. Selenium的PO模式(Page Object Model)[python版]

     Page Object Model 简称POM  普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driv ...

  3. selenium元素定位篇

    Selenium webdriver是完全模拟用户在对浏览器进行操作,所有用户都是在页面进行的单击.双击.输入.滚动等操作,而webdriver也是一样,所以需要我们指定元素让webdriver进行单 ...

  4. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  5. 幼儿园的 selenium

    from selenium import webdriver     *固定开头     b=webdriver.Firefox()              *打开火狐浏览器    browser. ...

  6. 使用selenium编写脚本常见问题(一)

    前提:我用selenium IDE录制脚本,我用java写的脚本,如果大家想看的清楚明白推荐java/Junit4/Webdriver 我用的是java/TestNG/remote control 1 ...

  7. 关于selenium RC的脚本开发

    第一.需要录制脚本,找个我也不说了.就是在firefox下下载一个selenium-IDE并且安装. 第二.在工具里找到selenium-IDE点击运行. 第三.默认是红色按钮点击状态的,接下来随便你 ...

  8. 基于python的selenium自动化测试环境安装

    1. Python2安装 官方网站:https://www.python.org/downloads/ (python3或新版本已经默认集成了pip包和path,安装的时候打勾就行,可以直接跳过下面第 ...

  9. Selenium+python 配置

    1. 安装python, www.python.org. 下载最新的python,应该是32位的.注意配置环境变量. 2. 安装PIP(pip是一个以Python计算机程序语言写成的软件包管理系统). ...

  10. selenium 使用action进行鼠标,键盘操作

    <!--test.html--> <html> <head> <title>Set Timeout</title> <script&g ...

随机推荐

  1. js对cookie增删改查的封装

    /** * 获取cookie * @param name * @returns {*} */ function getCookie(name) { var cookieArr = document.c ...

  2. Hadoop分布式文件系统架构部署

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wgkgood.blog.51cto.com/1192594/1332340 前言 ...

  3. 【WPS】表格使用VBA宏编程写入ini文件实现软件多语言

    前言:公司软件最近在做多语言版本,而又来一个西班牙文版本的,之前已经做过中文版本,英文版本和法文版本,之前是同事做的,现在安排我做,之前的做法,使用wps表格,翻译好,然后一个一个复制粘贴到ini文件 ...

  4. kmp板子

    kmp 容易理解板子 详情见知乎 算法思想 对模式串求PMT,但实际上nxt数组是PMT向前移动一位 nxt数组含义:记母串为m[],模式串为p[]; m[i]与p[j]比较失配,需要比较m[i]与p ...

  5. 10.3 .NET 3.5 中的扩展方法

    10.3.4 用 Select 方法和匿名类型进行投影 class Program { static void Main(string[] args) { , ).Where(x => x % ...

  6. centos 配置svn http serve

    你看到的这个文章来自于http://www.cnblogs.com/ayanmw 基本的安装包有: subversion /httpd/ svn的httpd的mod_dav_svn mod_authz ...

  7. 使用yum update更新文件系统时不更新内核的方法

    CentOS使用yum update更新时不升级内核 cp /etc/yum.conf    /etc/yum.confbak 方法一.修改yum的配置文件 vi /etc/yum.conf  在[m ...

  8. Golang - 流程控制

    目录 Golang - 流程控制 1. 选择结构 2. 循环结构 3. 跳转语句 Golang - 流程控制 1. 选择结构 if else语句: //package 声明开头表示代码所属包 pack ...

  9. Oleg and Little Ponies

    Oleg and Little Ponies Time limit: 0.9 secondMemory limit: 64 MB Little boy Oleg loves the cartoon M ...

  10. MySQL中index和key的关系

    KEY is normally a synonym for INDEX. The key attribute PRIMARY KEY can also be specified as just KEY ...