selenium python 入门-元素定位

 

环境搭建

安装教程

http://www.testclass.net/selenium_python/install-selenium/

chrome浏览器 还需要下载chrome driver 把下载的chromedriver .exe放到chrome安装目录下的Application目录下和 python所在的安装目录下,比如我的目录是C:\Program Files (x86)\Google\Chrome\Application 和D:\Program Files (x86)\Python\Python36

http://selenium-release.storage.googleapis.com/index.html?path=2.53/

原来装的是python2.7发现不怎么支持中文,后来发现了virtualenv可以切换不同的python挺好用的,这是大神安装教程

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108300322c61f256c74803b43bfd65c6f8d0d0000

 

Webdriver 常用Api

使用常用api注册百度帐号

打开 python IDE(python 可以按TAB键补全代码) ,创建并使用webdriver对象,这时候会打开一个浏览器

 

跳转到特定的网址 比如百度,这时候浏览器会跳转到对应的网址

 

在搜索栏输入我们想要搜索的内容,需要先找到对应的html的节点id或name并使用webdriver的send_keys()方法输入我们的搜索内容

按下F12打开chrome的开发者工具,查找搜索栏输入框的节点id kw,点击检查可以快速定位

 

python IDE输入以下语句,搜索框会出现 python

 

输入想要搜索的内容还不够,需要点击按钮才能搜索到,这个时候同理找到百度一下这个按钮的元素节点,运用webdriver鼠标点击事件方法click(),就能搜索到对应的内容

 

python Ide 输入

 

注册一个百度帐号,需要点击登录,找到对应的代码,因为登录是个链接,可以通过link_text定位元素

 

python IDE

 

找到注册页面,注册一个帐号,由于页面已经跳转到登录页面 这时候需要将handle句柄更换为跳转后的子页面

 

 

这时候又打开了一个新页面,又需要将句柄更换,同时键入注册内容,实现注册,使用xpath 可以定位到页面任何元素,在chrome浏览器中可以通过copy->copy xpath获得,由于copy过来xpath格式有问题,只要把id的值改为单引号就可以了

 

 

由于要键入字符需要导入Keys

 

键入注册的内容

 

点击获取验证码并输入

 

 

转载于:https://www.cnblogs.com/meowding/p/8085334.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES5程序设计转ES6 笔记

课程链接 1. 立即执行函数 特点:执行结束,立即销毁;独立作用域执行符号()只能跟在表达式后面,不能放在函数声明后分号可以写在前面/后面document为传入实参,doc为形参 ;(function(doc){...co…

DPDK helloworld 源码阅读

在 DPDK Programmers Guides 中的 EAL 一篇中有一个图可以很清晰地看到一个DPDK的应用程序的大致执行思路: 初始化检查CPU支持、微架构配置等完成后,执行main()函数。 第一步是 rte_eal_init(),核心初始化和启动。其中线程使用的是pthread库&…

javascript --- 作用域和闭包

执行环境: // 定义了变量或函数有权访问的其他数据,决定了它们各自的行为 // 每个执行环境都有一个变量对象与之对应,执行环境中所定义的所有变量和函数都保存在变量对象中 // 某个执行环境中的所有代码执行完毕后,该执行环境被销毁,保存在其中的所有变量和函数定义也随之销毁…

异步下载圆形进度条显示进度

圆形进度条参考链接即可:使用css3实现圆形进度条 需求点击下载后遮罩层显示下载进度: 1.圆形进度条参考以上链接,有点小瑕疵,可更改定位距离实现重合。 2.遮罩层: .lbOverlay{display: none;position: fixed;left: 0;…

javascript基本功

隐式类型转换 var a {_default: 0,toString: function () {return a._default} } if (a 1 && a 2 && a 3) {console.log(解) } 访问一个变量的时候进行拦截 var _default 0 Object.defineProperty(window, a, {get() {return _default} }) if (a 1 &am…

深信服笔试,抓兔子

*问题描述:抓兔子n个排成一排的洞,编号为1到n,兔子每天晚上会跳到相邻的一个洞里,小q每天只能白天检查其中的一个洞,小q会告诉你每天检查的洞,分析是否一定能抓到兔子示例:3个洞,第一…

es6 --- 模块

function foo(){var something cool;var another [1, 2, 3];function doSomething() {console.log( something );}function doAnother() {console.log( another.join( " ! " ) );} } // 是一个不明显的闭包,doSomething()和doAnother()保持了foo的内部作用域接下来…

Java之递归遍历目录,修改指定文件的指定内容

EditProperties.java 1 package PropertiesOperation.Edit;2 3 import java.io.File;4 5 /**6 * 替换指定Porpoerties文件中的指定内容7 * 三个参数:8 * filePath:存放properties文件的目录9 * srcStr:需要替换的字符串 10 * desStr&…

学习日志---7

1.复习Linux hadoop hdfs MapReduce基础知识 1,列举linux常用命令 shutdown now reboot mkdir mkdir -p touch filename rm -r filename rm -rf filename vi filename i--->可编辑状态 esc --> : --->wq 保存退出 q! wq! cat grep find ifconfig ping user…

javascript --- 属性描述符

从ES5开始,所有的属性都具备了属性描述符 var myObject {a: 2 };Object.getOwnPropertyDescriptor(myObject, "a"); //{ // value:2, // writable: true, // 可写 // enumerable: true, // 可枚举 // configurble: true // 可配置 //}定义属性…

看了吗网址链接

sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare # -*- coding: utf-8 -*- ""&qu…

JMeter 性能测试进阶实战

课程简介 本课程制作的主要目的是为了让大家快速上手 JMeter,期间穿插了大量主流项目中用到的技术,以及结合当今主流微服务技术提供了测试 Dubbo 接口、Java 工程技术具体实施方案,注重实践、注意引导测试思维、拒绝枯燥的知识点罗列、善于用…

javascript --- 混入

显示混入: function mixin(sourceObj, targetObj){for(var key in sourceObj){ // 遍历source中的所有属性if(!(key in targetObj)) { // 找到targetz中没有的属性targetObj[key] sourceObj[key];}}return targetObj; }var Vehicle {engines: 1,iginition: function() {c…

php源码代目录

ext :存放动态和内建模块的目录,在这里可以找到所有的php官方亏站,并且也可以在这里编写扩展; main:包含php的主要宏定义; pear: PHP扩展与应用库; sapi:包含不同服务器抽象层的代码; TSRM:Zend和PHP的"线程安全资源管理器"目录; Z…

bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛——状压DP

题目&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id1231 小型状压DP&#xff1b; f[i][j] 表示状态为 j &#xff0c;最后一个奶牛是 i 的方案数&#xff1b; 所以下一个只能是和它相差大于 k 而且不在状态中的奶牛。 代码如下&#xff1a; #include<iostr…

JavaScript高级程序设计阅读笔记

2020-11-15 通过初始化指定变量类型 数字-1 对象null和null的比较&#xff08;不理解&#xff09;使用局部变量将属性查找替换为值查找&#xff08;算法复杂度&#xff09;循环的减值迭代&#xff0c;降低了计算终止条件的复杂度switch快多个变量声明逗号隔开使用数组和对象字面…

jquery --- 监听input框失效

使用juery监听Input输入的变化,并且封装起来,如下: // html <input type"text" id‘myinput1’ /> // js function formOnById(id){let dom # id;$(dom).bind(input propertychange,()>{let item $(dom).val;console.log(item);} } formOnById(myinp…

windows任务计划程序 坑

转载于:https://www.cnblogs.com/kaibindirver/p/8109041.html

第三篇:函数之嵌套

1 #函数的嵌套调用&#xff1a;在调用一个函数的时&#xff0c;其内部的代码又调用其他的函数2 # def bar():3 # print(from bar)4 #5 # def foo():6 # print(from foo)7 # bar()8 #9 # foo() 10 11 12 # def max2(x,y): 13 # if x > y: 14 # ret…

vue路由权限(结合服务端koa2)

gitee地址 一、项目初始化 vue create manager-admin // 创建vue项目// 管理员权限安装 cnpm i -S koa2 // 下载koa2依赖 cnpm install --global koa-generator // 下载框架 koa-generator koa2 manager-server // 创建项目 cd manager-server // 进入项目 npm install // 安…