selenium 使用随笔
今天闲来无事,有朋友问到,如何使用selenium。于是便便写了个简单的脚本,用于讲解其基础用法。
selenium常用作web自动化测试。通过跟python或其他语言的结合,可以驱动浏览器,并在浏览器上进行以往需要人工点击或者输入的操作(如输入文字,点击按钮等等)
一 安装
1 安装selenium
目前selenium的最新版本为3.5.0,使用python的同学,安装起来非常方便,只需要以下一条语句:
pip install selenium
2 安装浏览器对应的插件,本例中使用的是win7b4bit,Firefox浏览器,所以要下载对应的驱动:geckodriver-v0.18.0-win64.zip。以下是下载的地址
https://github.com/mozilla/geckodriver/releases
下载之后,解压,并将目录添加到系统的环境变量中。由于我偷懒,这一步没有执行,直接在代码中指定了geckdriver所在的目录。
二 实例
本实例中,访问淘宝的注册页面,并进入到手机验证码的页面。
1 要解决的问题:
淘宝注册页面的主页,有一个协议弹出框: 
点击“同意协议按钮后”,在页面中需要输入手机号,滑动解锁,点击“下一步”的按钮

2 代码及注释
# -*- coding: utf-8 -*- from selenium import webdriver
from selenium.webdriver import ActionChains #用于移动滑块
import time #初始化驱动,并且打开网页
driver = webdriver.Firefox(executable_path='D:/geckodriver/geckodriver.exe')
driver.get('https://reg.taobao.com/member/reg/fill_mobile.htm') #点击确认按钮
alert = driver.find_element_by_id("J_AgreementBtn")
alert.click() #填入手机号
phone_input = driver.find_element_by_id("J_Mobile")
phone_input.clear()
phone_input.send_keys("135XXXXXXXX") #移动滑块
source = driver.find_element_by_id("nc_1_n1z")
target = driver.find_element_by_xpath('//span[@data-nc-lang="_startTEXT"]')
action_chains = ActionChains(driver) # 先选中滑块并按住鼠标左键,然后移动滑块
action_chains.click_and_hold(source).perform()
action_chains.move_by_offset(300,0).perform()
time.sleep(2) #注意,以下使用的是css_selector,因为使用id的话,会定位到未启用的按钮上而出错
#在本例中,此按钮未启用前的class为"btn btn-large tsl btn-disabled"
next_button = driver.find_element_by_css_selector('[class="btn btn-large tsl"]')
next_button.click()
selenium 使用随笔的更多相关文章
- Java的selenium代码随笔(8)
Selenium截图方法一: Selenium中截图类TakeScreenshout,这个类主要是获取浏览器窗体内的内容,不包括浏览器的菜单和桌面的任务栏区域,我们用百度首页来截图,看看截图效果. F ...
- Java的selenium代码随笔(7)
//判断元素是否存在public boolean IsElementPresent (WebElement webElement, By by) { boolean status = false; t ...
- Java的selenium代码随笔(6)
//获取元素列表public List<WebElement> ListElements(WebElement webElement, By parentBy, By childrenBy ...
- Java的selenium代码随笔(4)
//高亮操作元素public void highlight(WebElement webElement) {JavascriptExecutor javascriptExecutor = (Javas ...
- Java的selenium代码随笔(5)
//以下七种方法主要用于生成年.月.日.小时.分钟和秒的信息,用于生成保存截图的文件目录名和文件名/** 格式化输出日期* * @return 返回字符型日期*/public static Strin ...
- Java的selenium代码随笔(3)
/** 以下方法主要用于切换页面*/public void SetPageSwitch(String pageTitle) {Set<String> allWindowsHandles = ...
- Java的selenium代码随笔(2)
import java.awt.AWTException;import java.awt.Robot;import java.awt.Toolkit;import java.awt.datatrans ...
- Java的selenium代码随笔(1)
package ShareClass; import java.awt.AWTException;import java.awt.Robot;import java.awt.Toolkit;impor ...
- Selenium 使用过程遇到问题随笔
最近正在学习Selenium,自学是比较难的,也很感谢网络环境中,各位大大的博文帮助. 也希望在此能够记录一下从小白学习使用selenium测试的过程,也希望能对别人有所帮助. 关于环境部署,以及入门 ...
随机推荐
- AT&T汇编helloworld
摘自:http://blog.163.com/guixl_001/blog/static/417641042012112102642703/ 代码: #hello.s .data # 数据段声明 ms ...
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
public class ArrayOperation { //二分查找算法 public static int branchSearch(int[] array, int searc ...
- voa 2015 / 4 / 25
When English speakers talk about time and place, there are three little words that often come up: in ...
- Spring Data JPA 复杂/多条件组合查询
1: 编写DAO类或接口 dao类/接口 需继承 public interface JpaSpecificationExecutor<T> 接口: 如果需要分页,还可继承 public ...
- hihocoder 1050 树中的最长路(动态规划,dfs搜索)
hihocoder 1050 树中的最长路(动态规划,dfs搜索) Description 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中,小Ho发现他不仅 ...
- vue基础01
事件 事件绑定 在vue中,事件绑定用v-on.v-on也可以用@click=""形式 实例1: <div class="container" id=&q ...
- log4j日志重定向
配置相应的类名或者包名,将日志重新定向到输入文件里 log4j.rootLogger=INFO,DEBUG,CONSOLE ##过滤日志 log4j.logger.[类名|包名]=INFO,[输出目的 ...
- (转)面试大总结之一:Java搞定面试中的链表题目
面试大总结之一:Java搞定面试中的链表题目 分类: Algorithm Interview2013-11-16 05:53 11628人阅读 评论(40) 收藏 举报 链表是面试中常出现的一类题目, ...
- 【javascript】ajax的参数
1. 常用参数 url type: contentType: dataType: data: success: error 2. 特殊参数 context: 这个对象用于设置Ajax相关回调函数的上下 ...
- python 中 list 的各项操作
最近在学习 python 语言.大致学习了 python 的基础语法.觉得 python 在数据处理中的地位和它的 list 操作密不可分. 特学习了相关的基础操作并在这里做下笔记. ''' Pyth ...