Selenium 学习笔记(一)
selenium 学习整理
初学者,如果有不当得地方请指出,非常感谢。
准备事项:
1. Python 安装包
安装Python,并勾选添加环境变量。
安装完成后,打开dos窗口,输入python,看能否进入python命令行模式。如果不能就手动添加一下环境变量。
2. Chrome 安装包(其他浏览器也可以,Chrome支持得比较好;如果用IE得话,需要再设置--安全,关闭浏览器得保护模式,一个四个)
3. 浏览器版本对应得ChromeDriver.exe (去浏览器官网可以找到,必须和浏览器版本对应)
不需要安装,直接复制到python安装目录下就好。
4. Selenium 安装包
解压到 Python\Python35\Lib\site-packages 。注意:最好直接解压到该目录下,如果是拷贝得话,要确认打开selenium文件夹,直接看到init文件。
验证:打开dos窗口,进入python 命令行模式,输入 from selenium imprt webdriver (没报错得话证明解压得没问题,python能直接识别该文件);
再次输入 webdriver.Chrome() ,期望结果是启动浏览器。证明浏览器和对应得驱动是无误得。
5. 安装Pycharm (其实就是一编写工具,用自带得也行)
开始喽:
from selenium import webdriver # 从selenium 中将webdriver 导入当前
driver = webdriver.Chrome() # driver 是变量名,便于后面使用,起什么名都行
driver.get("http://localhost") # 打开指定网址
driver.maximize_window() #字面意思,最大化浏览器窗口,目前学习阶段没看到有啥用==
driver.implicity_wait(30) # 隐式等待,比如你提交表单得时候,服务需要时间才能给到你响应,这个时候如果不让浏览器等待,直接执行下面得语句可能就会得到错误得结果。这个语句是为了便于阅读加到这。Q:这个语句是必须得么?我去百度下。。。A: 待更新。。。没找到答案,
顺便提一下,还有一种是显示等待time.sleep(5) 对于浏览器弹窗得行为,隐式等待不起作用。
今天主要针对网站得登录注册自动化。界面是下面这样得:

from selenium import webdriver driver = webdriver.Chrome()
driver.get("http://localhost/")
driver.maximize_window()
driver.find_element_by_link_text("注册").click()
# find_element_by_ 通过各种方式获取目标节点,click()模拟用户点击
点击按钮这块有个坑。点击后,会新打开一个页面。而Selenium 默认针对第一个tab页。这个时候有两种方式,一种是使用switch切换窗口;一种是清除页面中新打开窗口target属性,然后再点击。下面分别写一下。
from selenium import webdriver driver = webdriver.Chrome()
driver.get("http://localhost/")
driver.maximize_window()
driver.find_element_by_link_text("注册").click()
# find_element_by_ 通过各种方式获取目标节点,click()模拟用户点击 current_tab = driver.current_window_handle
# current_tab 是首页
all_tab = driver.window_handles
for i in all_tab:
if i == current_tab:
driver.close()
else:
driver.switch_to.window(i)
这个是使用switch方式切换,并把另一个tab页关闭,这样就保持了浏览器一直一个tab页。
from selenium import webdriver driver = webdriver.Chrome()
driver.get("http://localhost/")
driver.maximize_window() js = 'document.getElementsByClassName("site-nav-right fr")[0].childNodes[3].removeAttribute("target")'
# 注意单双引号
driver.execute_script(js)
driver.find_element_by_link_text("注册").click()
# find_element_by_ 通过各种方式获取目标节点,click()模拟用户点击
中间有一句JavaScript代码,这个需要在浏览器调试模式中,逐级找到目标节点,然后执行清除属性,最好是实验好了,直接粘到python代码中。


== 先去吃饭,晚上回来接着写。一边写一边练习一边问自己为什么。感觉棒棒哒~
Selenium 学习笔记(一)的更多相关文章
- selenium 学习笔记 ---新手学习记录(1) 问题总结
说明:每次学习各种语言时,环境搭建访问国外网址最头疼了,现在只要是工具下载好放到自己网盘,可以随时用. 1.首先工具准备,selenium需要用到的 下载地址 访问密码 ff8f 2.我选择的语言时j ...
- selenium学习笔记(简单的元素定位)
收拾一下心情开始新的一周工作 继续是selenium的学习.配置成功后 由于所有操作都是建立在页面元素基础上的.所以下来就是学习定位元素 首先是基础的定位.就使用博客园首页搜索框为例: 下面是代码: ...
- selenium学习笔记(selenium下载安装)
博主自己捣鼓的接口框架先到这里 等工作上正式开始使用再后续完善需求 还是继续学习python.学编程就直接动手写 就想看看python+selenium的组合 什么都不多说.先下载安装 博主这里已经安 ...
- Selenium学习笔记之外部化相关测试数据---xml
我们也可以用xml来定义一个信息更为丰富的UIMap.xml文件,比如,额外还添加控件所属的页,控件的类型,然后解析构建一个XMLParser类来读取相应的值. <?xml version=&q ...
- selenium 学习笔记 ---新手学习记录(9) 问题总结(java)
1.百度搜索目标--实例 boolean flag; //点击次数 int shcs=3; int i=0; //窗口焦点控制 String detailWindowHandle = null; // ...
- selenium 学习笔记 ---新手学习记录(2) 问题总结
今天研究了下ie.chrome.firefox浏览器执行脚本 1.首先firefox下执行时,我是安装在d盘了,所以要更改路径 //如果火狐浏览器没有默认安装在C盘,需要制定其路径 System.se ...
- python + selenium 学习笔记 -摘要
一.浏览器操作相关 from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() # 窗口最大 ...
- Selenium学习笔记
Selenium是一个强大的自动化测试工具,它的核心思想是通过JavaScript嵌入的方式直接操纵页面的DOM来模拟手工测试工作. Selenium IDE,一个Firefox插件,可以在Firef ...
- selenium学习笔记(智能等待)
博主在尝试对百度首页用selenium完成自动登录的功能 反复多次尝试元素定位方法也未写错.最后发现问题原因: 脚本运行速度快于页面加载速度 如百度首页登录例子.脚本已经开始寻找登录弹窗 但是页面仍在 ...
随机推荐
- Java设计模式之模板方法设计模式(银行计息案例)
不知道为什么,这几天对Java中的设计模式非常感兴趣,恰巧呢这几天公司的开发任务还不算太多,趁着有时间昨天又把模板方法模式深入学习了一下,做了一个客户在不同银行计息的小案例,感触颇深,今天给各位分享一 ...
- ionic2+Angular ionScroll页面滑动监听
第一:需要在组件中引入相关模块: 第二:如果只是监听页面滑动,只需要标注@ViewChild(Content) content: Content;就可以了. 附加:如果要监听页面的某个元素,并对其进行 ...
- ibatis 参数和结果的映射处理
SqlMapClient对象 这个对象是iBatis操作数据库的接口(执行CRUD等操作),它也可以执行事务管理等操作.这个类是我们使用iBATIS的最主要的类.它是线程安全的.通常,将它定义为单例. ...
- 【SqlServer系列】集合运算
1 概述 已发布[SqlServer系列]文章如下: [SqlServer系列]SQLSERVER安装教程 [SqlServer系列]数据库三大范式 [SqlServer系列]表单查询 [SqlS ...
- node 简介 起源
最近的node 的一篇文章阅读量很大,所以写一篇基础篇供大家分享,抛砖引玉,各取所需. 部分内容来源大神笔记. Node.js 简介:@@@@@@@@@@@@@@@@@@@ Node.js是目前非常火 ...
- 用letsencrypt搭建免费的https网站
环境:阿里云服务器centos7.3,nignx,letsencrypt做免费的https证书 Let’s Encrypt官网:https://letsencrypt.org/ 1.服务器开放端口:4 ...
- Linux(3)用户和权限管理
用户, 权限管理 Linux中root账号通常用于系统的维护和管理, 它对操作系统的所有部分具有不受限制的访问权限 在Unix/Linux安装过程中, 系统会自动创建许多用户账号, 而这些默认的用户就 ...
- [基础]PeopleSoft中的作业和调度作业集合定义
PeopleSoft进程调度器可以使一个或多个进程作为一个组.这个组在PeopleSoft中被称为作业(Job). PeopleSoft进程被定义为单个任务,程序或例程,例如cobol程序或AE程序或 ...
- [Git] 1、常用Git命令行总结(一)
一.GIT CLONE最常用的有如下几个 1.最简单直接的命令:git clone xxx.git 2.如果想clone到指定目录:git clone xxx.git “指定目录” 3.clone时创 ...
- 解决Nuget:https://api.nuget.org/v3/index.json 访问不了的问题
最近在家中用使用VS编译项目时,Nuget包一直下载不了,直接在浏览器中访问https://api.nuget.org/v3/index.json ,浏览器也打不开网址.把https协议改成http协 ...