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判断数组中是否包含某个值

    /** * 判断数组中是否包含某个值 * @param arr 数组 * @param str 值 * @returns {boolean} */ function contains(arr, str ...

  2. lvs负载均衡net模式

    环境配置,一台双网卡的ens33,ens37,ens37的网关是ens33的IP,指定一下nginx ens33,192.168.30.22,ens37,172.16.1.1nginx  192.16 ...

  3. eas中删除原来的监听事件添加新的监听事件

    kdtEntrys.removeKDTEditListener(kdtEntrys.getListeners(KDTEditListener.class)[0]);  kdtEntrys.addKDT ...

  4. GDI 映射模式(11)

    概述 调用 SetMapMode 函数可以设置映射模式: int SetMapMode( HDC hdc, // 设备环境句柄 int fnMapMode // 要设置的映射模式 ); 同样,调用 G ...

  5. javascript实现:在N个字符串中找出最长的公子串

    'use strict' module.exports = function 找出最长公子串 (...strings) { let setsOfSubstrings = [] strings.redu ...

  6. 51nod1079 中国剩余定理【数论】

    一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K % 2 = 1, K % 3 = 2, K % 5 = 3.符合条件的最小的K = 23. Input 第1行:1个数N表 ...

  7. QT5的模块介绍【摘】

    Qt 5 模块分为 Essentials Modules 和 Add-on Modules 两部分.前者是基础模块,在所有平台上都可用:后者是扩展模块,建立在基础模块的基础之上,在能够运行 Qt 的平 ...

  8. MySQL 存储过程的异常处理

    mysql> mysql> delimiter $$ mysql> mysql> CREATE PROCEDURE myProc     ->     (p_first_ ...

  9. Java 中 synchronized的用法详解

    Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 1.方法声明时使用,放在范围操作符(public等)之后,返回类型声明(void等)之 ...

  10. n!最末尾非0数

    最小周期串:如果s是ss的周期串,那么ss就可以表示成几个周期的s,如果s是ss的最小周期串,那么s就是ss的周期串中最小的一个.例,ZgxZgxZgxZgx的最小周期串是Zgx.{很好理解} 给你一 ...