selenium是一个用于web应用程序测试的工具,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建衰退测试检验软件功能和用户需求。支持自动录制动作和自动生成。Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。

要使用selenium之前呢必须得先下载浏览器驱动器,我知道的浏览器只有这些

,Chrome浏览器 指定浏览器 Firefox :火狐 Opera 歌剧院 , Ie浏览器,Safari 苹果浏览器
其中我只用过火狐和Chrome浏览器    
 
Chrome浏览器的驱动下载地址是:http://chromedriver.storage.googleapis.com/index.html
要下载的版本必须是你现在使用的版本最近的或一样,然后把你下载的驱动解压放在你的浏览器的文件中就可以来了    要是不行的话就重启一下
 
火狐浏览器的驱动下载地址是:https://github.com/mozilla/geckodriver/releases
他的操作也跟上边的一样 ,不过他的驱动就下最新版的就可以了
 
 
接下来就是selenium操作了
 
 
#导报
from selenium import webdriver
import time
import requests
#建立浏览器对象 ,Chrome浏览器 指定浏览器 Firefox :火狐 Opera 歌剧院 , Ie浏览器,Safari 苹果浏览器
browser = webdriver.Chrome()
#使用浏览器访问网站
browser.get('https://www.baidu.com')
#向文本框填充文本
browser.find_element_by_id("kw").send_keys('男神鹏')
time.sleep(1)
#模拟点击
browser.find_element_by_id("su").click()
time.sleep(5)
#匹配多个节点
# elist = browser.find_elements('css selector','h3')
elist = browser.find_elements_by_class_name('t')
text_str = str(elist[0].text)
print(text_str)
#点击链接
browser.find_element_by_link_text(text_str).click()
#暂停
time.sleep(50)
#关闭浏览器
browser.quit()
 
 
 
注意 :每次连接一个地址都给浏览器缓冲时间   一秒也行,最后别忘了关闭浏览器,这是我简单的一个操作流程, 他的流程就是先打开百度 然后 搜索:男生鹏  然后进第一个页面  。
 
 
下面的就是一些selenium操作

最简单粗暴却失传已久的8种定位

据说这种定位方式在江湖上都快要失传了,实在想不通为什么,明明写起来最简单粗暴啊~

driver.find_element("name","wd").send_keys("Selenium2")

driver.find_element("id","su").click()

大家一定会和我一样觉得这种方式的定位实在是太省事了~只要写find_element就好啦,下面我们来总结一下这8种写法与基本定位方法类比过来该怎么写:

by_id -> find_element("id","")

by_xpath -> find_element("xpath","")

by_link_text -> find_element("link text","")

by_partial_text -> find_element("partial link text","")

by_name -> find_element("name","")

by_tag_name -> find_element("tag name","")

by_class_name -> find_element("class name","")

by_css_selector -> find_element("css selector","")

elements复数定位

在上面的例举的八中基本定位方式种,都有对应的复数形式,分别是下面这些:

id复数定位find_elements_by_id()

name复数定位find_elements_by_name()

class复数定位find_elements_by_class_name()

tag复数定位find_elements_by_tag_name()

link复数定位find_elements_by_link_text()

partial_link复数定位find_elements_by_partial_link_text()

xpath复数定位find_elements_by_xpath()

css复数定位find_elements_by_css_selector()

这些复数定位方式每次取到的都是具有相同类型属性的一组元素,所以返回的是一个list队列,我们也可以利用这个去定位单个的元素。比如百度首页种,右上角有新闻、视频、地图、贴吧等一些链接,我们通过f12查看源码可以发现,这些链接都有共同的class, class="mnav"。

 
 
selenium基础操作就是这些了 ,希望对你们有帮助!!
 

人工智能-机器学习之Selenium(chrome驱动,火狐驱动)的更多相关文章

  1. Web自动化测试python环境中安装 --selenium安装、火狐和火狐驱动版本、谷歌和谷歌驱动版本、测试

    一.安装selenium Windows命令行(cmd)输入pip install selenium(无须指定版本默认最新)或 pip install selenium==3.141.0(可指定版本) ...

  2. selenium与chrome浏览器及驱动的版本匹配

    用selenium+python+webdriver完成UI功能自动化,经常会碰到浏览器版本与驱动的版本不匹配而引起报错,下面就selenium与chrome浏览器及驱动的版本匹配 做个总结. 使用W ...

  3. selenium&火狐驱动安装及兼容性处理

    1.selenium安装 安装:pip install selenium==3.7.0 卸载: pip uninstall selenium 查看版本号:pip show selenium   2.火 ...

  4. Selenium学习之==>WebDriver驱动对照表

    转自www.imdsx.cn 1.Chrome 对于chrome浏览器,有时候会有闪退的情况,也许是版本冲突的问题,我们要对照着这个表来对照查看是不是webdriver和chrome版本不对. chr ...

  5. chrome\IE\Firefox驱动下载地址

    安装三大浏览器驱动driver 1.chromedriver 下载地址:https://code.google.com/p/chromedriver/downloads/list 2.Firefox的 ...

  6. 浅谈python中selenium库调动webdriver驱动浏览器的实现原理

    最近学web自动化时用到selenium库,感觉很神奇,遂琢磨了一下,写了点心得. 当我们输入以下三行代码并执行时,会发现新打开了一个浏览器窗口并访问了百度首页,然而这是怎么做到的呢? from se ...

  7. Firefox、IE、chrome浏览器和驱动下载地址

    一.Firefox和驱动下载地址 selenium2.X最高支持的Firefox版本为46,使用selenium2.X的话不需要下载火狐驱动,只需要配置火狐的启动路径即可. Selenium3.0开始 ...

  8. Linux配置Selenium+Chrome+Java实现自动化测试

    1.安装chrome sudo apt-get install libxss1 libappindicator1 libindicator7 wget https://dl.google.com/li ...

  9. Deb版本Linux配置Selenium+Chrome+Java实现自动化测试

    1.安装chrome sudo apt-get install libxss1 libappindicator1 libindicator7 wget https://dl.google.com/li ...

随机推荐

  1. 前端之前端介绍或html的常用标签1

    一 web服务器的本质 由浏览器发送一个请求.服务器接收到,然后在回应一个响应. 由于浏览器的不同,web服务器响应的内容不一定被浏览器接收. HTTP/1.1 201 OK\r\n\r\n需要发送的 ...

  2. [转]urllib模块urlretrieve方法

    直接将远程数据下载到本地 info: urllib.urlretrieve(url[, filename[, reporthook[, data]]])参数说明:url:外部或者本地urlfilena ...

  3. IOS 单击手势和cell点击冲突

    环境: view上添加tableView,给view添加单击手势,点击cell却走的是手势方法. 解决: UITapGestureRecognizer *tap=[[UITapGestureRecog ...

  4. 2018.10.31 bzoj3339&&3585mex(主席树)

    传送门 双倍经验 直接上主席树,每个叶节点维护这个值出现的最右区间,非叶子节点维护当前值域内所有最右区间的最小值. 查询的时候只用在以root[qr]root[qr]root[qr]为根的树上面二分. ...

  5. Clion 教程书写Hello World,C语言开发;Clion 的C语言开发

    一.编译器安装 二.项目搭建 1.新建项目 2.项目类型选择(双红圈是项目名称,可以修改) 3.点击create,自动生成项目. 4.运行项目

  6. IntelliJ IDEA 2017版 spring-boot2.0.2 搭建 JPA springboot DataSource JPA 实体类浅谈

    一.实体类分析 一般用到的实体类的类型有 String类型.Long类型.Integer类型.Double类型.Date类型.DateTime类型.Text类型.Boolean型等 1.String类 ...

  7. 实习番外篇:解决C语言使用Makefile无法实现更好的持续集成问题

    工作中遇见的一个问题,提供项目源代码的情况下,希望对项目进行持续集成,达到一个C项目增量编译的效果.原本第一天是想通过模拟Makefile执行步骤来实现整个过程的,但是事实上发现整个Makefile显 ...

  8. cyclone IV中DDR的一个疑惑

    的生成的DDR2 IP中DDR的时钟竟然是双向的,而在arria10中生成的DDR4则是输出,而DDR2的datasheet上也指出ck和ck#是输入,不知为什么? inout mem_clk , i ...

  9. c++中指针的指针和指针的引用的使用

    当指针作为函数的参数进行传递时,实际上本质上是安置传递,即将指针进行了一份拷贝,在函数的内部对这个指针的修改实际上就是对一个在函数内部的那个局部变量的修改.这点事和引用不同的,引用实际上是在参数传递时 ...

  10. Libre Office冻结操作-MAC

    冻结行/列 选中所要冻结的行/列,选择window-Freeze 冻结成功 冻结单元格 操作方法与“冻结行/列”一致