一位经验丰富的同事交给了我一个任务:将20个IP地址添加到公司系统对应的目录下。

这个任务之前做过,并且数量是远不止20个,当时就学习Selenium并且使用Python3.6写了一个脚本用来自动化地跑;可是任务做完之后电脑由于Hyper-V服务出现了致命错误无法启动,只能重装系统,于是我的Python环境和代码就这样丢失了。

当今天重新遇到这个问题的时候,虽然任务量不是很大,但是我想还是用Python实现算了吧,毕竟也只有那么几行代码。

于是开始我的重新学习之路:

首先下载安装了Python2.7(这次下载了的是2.7版本,它默认安装到了与Program Files同级的目录下),安装完成之后我手动为当前用户添加了环境变量,再利用pip功能安装了selenium模块,于是Python2.7目录下就多了一个文件夹(名称是Selenium),然后我把代码(此处省略代码思路的思考及手写并导入记事本的过程)用IDLE开发工具打开,出现了熟悉的代码界面,我点击运行,出现了如下所示的错误:

然而这个错误是由于我主动关闭了Chrome浏览器才导致的(关闭Chrome的原因是在执行脚本之后立刻出现了Window系统错误,提示:Chromedriver.exe has stopped blabla,并且必须关闭这个错误提示才能查看浏览器细节信息,于是就只能关闭了,关闭之后就报了上面截图的这个错误),遇到这个问题之后我就在Google上找问题出现的原因,大部分Stackoverflow上的回答者给出了跟我问题描述一致的解决方案,有一些说是因为url的格式不正确(不是我的解决方案),有一些说是版本不正确。在我探索了很久之后,发现果然是版本不正确。于是我去下了当前最新的版本(Chromedriver2.37版本)。结果:执行正确。

看来版本对于Chromedriver在python环境下运行很重要。当然Selenium安装完之后是自带了对Firefox的支持,所以如果使用了Firefox那就不用担心版本问题。

使用Selenium进行浏览器自动化操作记录的更多相关文章

  1. splinter python浏览器自动化操作,模拟浏览器的行为

    Splinter可以非常棒的模拟浏览器的行为,Splinter提供了丰富的API,可以获取页面的信息判断当前的行为所产生的结果   最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有 ...

  2. Python实现浏览器自动化操作

    Python实现浏览器自动化操作 (2012-08-02 17:35:43) 转载▼     最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是 ...

  3. [转载]Python实现浏览器自动化操作

    原文地址:Python实现浏览器自动化操作作者:rayment   最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是支持IE,而且项目也较久没 ...

  4. Saltstack自动化操作记录(2)-配置使用 【转】

    之前梳理了Saltstack自动化操作记录(1)-环境部署,下面说说saltstack配置及模块使用: 为了试验效果,再追加一台被控制端minion机器192.168.1.118需要在master控制 ...

  5. Saltstack自动化操作记录(1)-环境部署【转】

    早期运维工作中用过稍微复杂的Puppet,下面介绍下更为简单实用的Saltstack自动化运维的使用. Saltstack知多少Saltstack是一种全新的基础设施管理方式,是一个服务器基础架构集中 ...

  6. Saltstack自动化操作记录(2)-配置使用

    之前梳理了Saltstack自动化操作记录(1)-环境部署,下面说说saltstack配置及模块使用: 为了试验效果,再追加一台被控制端minion机器192.168.1.118需要在master控制 ...

  7. Saltstack自动化操作记录(1)-环境部署

    早期运维工作中用过稍微复杂的Puppet,下面介绍下更为简单实用的Saltstack自动化运维的使用. Saltstack知多少Saltstack是一种全新的基础设施管理方式,是一个服务器基础架构集中 ...

  8. Python—selenium模块(浏览器自动化工具)

    selenium可以用来完成浏览器自动化相关的操作,写一些代码制定一些基于浏览器自动化的相关操作(行为动作),当代码执行后,浏览器就会自动触发相关的事件 安装方法: pip install selen ...

  9. python下selenium模拟浏览器基础操作

    1.安装及下载 selenium安装: pip install selenium  即可自动安装selenium geckodriver下载:https://github.com/mozilla/ge ...

随机推荐

  1. highchart 十字准星 crosshairs

    crosshairs: true, crosshairs: [true, true], // 同时启用竖直及水平准星线 crosshairs: [{ // 设置准星线样式 width: 2, colo ...

  2. 获得ztree的所有子节点id

    var treeNodeIds="";//获得所有树节点的id function aa(){ var treeObj = $.fn.zTree.getZTreeObj(" ...

  3. Python----unittest discover()方法与执行顺序

    一.Unittest discover()可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,让整体结构更加清晰一般是通过 ...

  4. vue 修饰符

    Vue.js 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault() 或 event.stopPropagation(). Vue.js通过由点(.) ...

  5. 回文的范围——算法面试刷题2(for google),考察前缀和

    如果一个正整数的十进制表示(没有前导零)是一个回文字符串(一个前后读取相同的字符串),那么它就是回文.例如,数字5, 77, 363, 4884, 11111, 12121和349943都是回文. 如 ...

  6. Android反编译apk并重新打包签名(Mac环境)

    工具下载 apktool :https://ibotpeaches.github.io/Apktool/install dex2jar:https://github.com/pxb1988/dex2j ...

  7. Python_Mix*匿名函数,sorted,filter,map,递归函数,二分法查找

    lambda匿名函数(函数名统一都叫lambda) 为了解决简单的需求而设计的一句话函数 语法: lambda 参数 返回值 n = lambda a,b: max(a,b) ret = n(9,4) ...

  8. MySQL拓展操作

    MySQL除了基本的增删该查功能,还有以下拓展功能: create table t1( id int ...., num int, xx int, unique 唯一索引名称 (列名,列名), con ...

  9. JAVA同步锁机制 wait() notify() notifyAll()

    wait() notify() notifyAll() 这3个方法用于协调多个线程对共享数据的存取,所以必须在synchronized语句块中使用. wait() 必须在synchronized函数或 ...

  10. OTP&ETS

    最近觉得实在是该梳理梳理erlang的框架内容了,所以整理了下. OTP(开放电信平台):并发系统平台, 特点:容错(erlang:get_stacktrace(),try-catch,trap_ex ...