(我也是小白,刚开始接触自动化,以下内容是我自己在配置环境的时候遇到的问题及解决方法,是后面才记录的要是有什么遗漏或者问题,欢迎帮忙指出来。)

1.1首先下载python

下载网址:https://www.python.org/downloads/这里我没有选择最新的版本而是选择了近两年的版本,由于python2现在几乎不用了,所以我选的是windows python3 64位操作系统版本进行安装。(这里直接找一个安装教程按照步骤进行安装即可)

注意:这里勾选add Python xx to PATH(不然系统找不到,就需要重新添加安装路径到path)

小知识:在官网下载比较慢是因为使用的国外的连接,此时可以使用国内镜像进行下载。
安装成功后可以在命令行输入:python即可查看python版本

1.2 安装集成开发环境(IDE):PyCharm
PyCharm可以方便的编写python代码,拥有一般IDE具备的功能,比如, 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。
下载地址:(初学者可以使用社区版,更重要的是,该版本不会对学习 Python 产生任何影响)
 https://www.jetbrains.com/pycharm/download/#section=windowsPyCharm这里在选择的时候,根据自己需要选择就好了。我自己是都选了

以上就解决了python编译问题,但由于我们是自动化测试,那么就需要使用编译语言来控制网站自动进行一些人工操作,此时就涉及到了浏览器驱动。

关于怎么配置可以随便百度搜一篇文档按照步骤即可

1.3 下载chrome浏览器驱动

首先要查看自己浏览器驱动版本(我用的Chrome,设置-关于里即可查看)

浏览器驱动选择,根据83.0.4103选择,如果没有就选比自己的更新的也可以

提示:有时候驱动只有32位,实际证明系统为64位也可以使用

下载浏览器驱动地址:
http://chromedriver.storage.googleapis.com/index.html

下载成功后,解压到python的安装目录,python的安装目录已配置到环境变量,所以不需要将驱动地址加到环境变量,否则需要添加

以上selenium3要素已经具备,现在就需要安装selenium。
介绍:selenium框架底层使用Java模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序,且支持java、python语言。

此时,我们随便百度一篇文档,会提示让你使用pip进行安装,但是由于你的pip可能不是最新版本,然后下载时就会让你更新pip,查询的更新方法大多还是出现报错无法更新,坚持不懈后找到一篇文档,使用:python -m pip install --upgrade pip -i https://pypi.douban.com/simple  更新成功。

1.4 selenium安装

pip更新问题解决之后,接下来就是使用pip安装selenium,我们使用pip install selenium==版本号 安装会发现没过一会就报了timeout的错,接着就是去找很多文档去解决这个这个问题,发现很多方法都不行,但是天无绝人之路,还是让我找到了,然后就用pip --default-timeout=100 install -U selenium==版本号,成功解决了安装问题

1.5初步编写百度自动化测试脚本
正以为该配置的都配置完了,可以好好写脚本进行试验了,然后写了下面代码进行运行

#引入时间模块

import time

#引入selenium下面webdriver模块

from selenium import webdriver

#将webdriver下的Chrome类赋值给变量driver

driver = webdriver.Chrome()

#使用Chrome类的get方法打开百度网址

driver.get("http://www.baidu.com")

#控制浏览器窗口大小

driver.set_window_size(1920,1080)

#使用ID定位方法实现输入和点击操作

driver.find_element_by_id("kw").send_keys("Selenium")

driver.find_element_by_id("su").click()

#等待10秒

time.sleep(5)

#关闭浏览器

driver.quit()

运行结果却提示我
AttributeError: module 'selenium.webdriver' has no attribute ‘Chrome’
随即就检查并使用了各种方法,发现都不行还是依旧报这个错误。
最后无奈只能决定在pyharm中手动添加selenium

路径:file ->settings,此时就可以看到已经存在的包,点击右边添加,搜索selenium并安装,会提示pip不是最新的,所以就要先更新pip
需要注意的是更新pip必须先把原版本删除,这里使用pip uninstall pip指令即可。删除之后再去添加最新的
在setting的配置中找到pip包,系统会推荐最新版本的pip包,安装的时候记得勾选上
版本号,点击installing package按钮即可安装pip包。
selenium同上:
此时再运行上面代码,第一个自动化试验就完成了。

 

selenium3+python3自动化环境搭建的更多相关文章

  1. selenium3+python3+Firefox54环境搭建

    之前使用的环境:selenium2.53.6+Firefox44+Python2.7,没有问题,最近想尝试一下新的环境,就搭了个selenium3的环境,过程是挺坎坷的,花费了一天的时间,各种报错,最 ...

  2. Java自动化环境搭建笔记(2)

    Java自动化环境搭建笔记(2) 自动化测试 在笔记一中已经完成了一键构建项目.xml指定规划测试集.数据解耦与allure报告生成的开发.接下来便是: 浏览器驱动通过配置启动 页面元素定位解耦,通过 ...

  3. 团队自动化环境搭建与管理--php博弈

    我是方少,很开心与大家日后与大家交流技术上面的一些想法和一些业务上的分享.以前从来没写过博客,因为觉得不重要吧,如今觉得有必要沉淀一些想法和回忆.好了费话不多说. 先上图: 业务问题:在每次新伙伴加入 ...

  4. iOS自动化环境搭建——macaca

    macaca-java for ios 自动化环境搭建 基础原理解析:https://testerhome.com/topics/6608 一.环境搭建 1.安装eclipse; -----Java开 ...

  5. MAC自动化环境搭建

    UI自动化环境搭建 第一阶段:配置appium环境硬件配置mac系统电脑 java环境sunjiedeMacBook-Air:~ vicent$ java -versionjava version & ...

  6. Java自动化环境搭建笔记(3)

    Java自动化环境搭建笔记(3) 自动化测试 自动化的环境已经基本搭建完成,后续可对BaseTester基类以及工具类进行扩展.下面便是持续集成的环境的搭建: Jenkins安装 git安装 源码上传 ...

  7. Java自动化环境搭建笔记(1)

    Java自动化环境搭建笔记(1) 自动化测试 先搭建java接口测试的环境: 使用mvn命令构建项目 测试集通过testNG.xml组织并运行 测试数据解耦,通过Excel等文件提供 基础依赖 创建m ...

  8. 基于python的App UI自动化环境搭建

    Android端Ui 自动化环境搭建 一,安装JDK.SDK 二,添加环境变量 Widows:1.系统变量→新建 JAVA_HOME 变量E:\Java\jdk1.7.0 jdk安装目录 2.系统变量 ...

  9. appium ios真机自动化环境搭建&运行(送源码)

    appium ios真机自动化环境搭建&运行(送源码) 原创: f i n  测试开发社区  6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...

随机推荐

  1. 树叶婆娑 shader

    效果是树叶摇曳: Shader "LeafAnim" { Properties { _MainTex ("Base (RGB)", 2D) = "wh ...

  2. beautifulsoup教程

    beautifulsoup教程 BeautifulSoup4是爬虫必学的技能.BeautifulSoup最主要的功能是从网页抓取数据,Beautiful Soup自动将输入文档转换为Unicode编码 ...

  3. 深入了解Netty【三】Netty概述

    1.简介 Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端. Netty是一个NIO客户端服务器框架,它支持快速.简单地开发协议服务器和客户端等网络应用程序 ...

  4. 笔记 | 第一个量子算法:Deutsch-Jozsa算法,非常好懂!

    <关于胡小兔的博客又诈尸了这件事> 信息物理真是难啊!上节课讲了量子计算的最基础的概念和Deutsch-Jozsa算法,我看了好几天才看懂-- 等考完试估计我就忘了,所以今天先写个博客给未 ...

  5. 《神经网络的梯度推导与代码验证》之vanilla RNN前向和反向传播的代码验证

    在<神经网络的梯度推导与代码验证>之vanilla RNN的前向传播和反向梯度推导中,我们学习了vanilla RNN的前向传播和反向梯度求导,但知识仍停留在纸面.本篇章将基于深度学习框架 ...

  6. codewars sum of pairs

    Sum of Pairs Given a list of integers and a single sum value, return the first two values (parse fro ...

  7. Broker的主从架构是怎么实现的?

    前言 上一篇文章我们一起聊了聊RocketMQ的NameServer的一些内部工作流程,了解了NameServer的部署和与Broker之间的联系,那么今天我们就来一起聊聊Broker的一些内部原理. ...

  8. shell知识点:${} 的神奇用法

    为了完整起见,我这里再用一些例子加以说明 ${ } 的一些特异功能:假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt我们可以用 ${ } 分别替换获得不同的值 ...

  9. Kubernetes笔记(五):了解Pod(容器组)

    Kubernetes 中, 容器总是以 Pod(容器组)的方式进行调度与运行.因此对 Pod 的理解与掌握是学习 Kubernetes 的基础. 理解 Pod Pod(容器组)是 Kubernetes ...

  10. C Primer Plus 学习笔记

    随笔: 1)C语言中%3d%2d什么意思? 格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,用来确定输出内容格式.在"%"和字母之间插进数字表示最大场 ...