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测试的过程,也希望能对别人有所帮助. 关于环境部署,以及入门 ...
 
随机推荐
- 一次C++调试记录
			
之前开发用Linux C比较多,C++中的STL 容器基本没有接触过.最近在学习C++,平时用到c++ 17中的部分新特性,下面就简单分享下自己C++的学习流程. 一.环境搭建 本 ...
 - 大数据平台搭建-kafka集群的搭建
			
本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容: 基础环境安装 zookeeper集群的搭建 kafka集群的搭建 hadoop/hbase集群的搭建 spark集群的搭建 flink集 ...
 - Jenkins+Git配置
			
Jenkins+Git配置 一.GitHub上配置 前提:Jenkins能正常打开 将本地文件上传到GitHub上:进入终端 cd Documents cd project git clone htt ...
 - 遍历数组按学号找人,若找到则输出信息,否则输出"查无此人"
			
//建立一个类类型的数组,并向这个数组内添加学生信息,包括姓名和年龄等 **********************学生类************************** package prac ...
 - JavaScript创建对象的方法
			
显示在浏览器中的控制台中. <script type="text/javascript"> //这个工厂方法返回一个新的"范围对象" functio ...
 - select2  4.0.3 空记录时的处理
			
使用select2插件,如果后台查找没有记录,不能返回null,要返回一个空数组,不然会报错:data is null 空数组形式为(firefox调试输出):{"items":[ ...
 - 【菜鸟入门】安装配置eclipse 并编写运行第一个Java程序
			
不得不吐槽一下,安装配置这eclipse真是太费劲了...下面总结一下,以便下次再安装 本人 win10系统,64位机 一.在官网下载eclipse安装包 文件名:eclipse-inst-win64 ...
 - [node] node 版本更新
			
一. 命令 node -v sudo npm cache clean -f // 清除缓存 sudo npm install -g n // 安装Node 模块 sudo n stable // 升级 ...
 - 阿里云服务器Windows Server 2008/2012部署Office Web Server 2013
			
以前成功将Office Web Server 2013部署在了本地服务器上,此次是将Office Web Server 2013部署在阿里云服务器Windows Server 2008和2012上,中 ...
 - [Tyvj 1730] 二逼平衡树
			
先来一发题面QwQ [TYVJ1730]二逼平衡树 Time Limit:2 s Memory Limit:512 MB Description 您需要写一种数据结构(可参考题目标题),来维护一个 ...