人工智能-机器学习之Selenium(chrome驱动,火狐驱动)

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基础操作就是这些了 ,希望对你们有帮助!!

转载于:https://www.cnblogs.com/weifeng-888/p/10494564.html

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

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

相关文章

这应该是史上最强的物理学科普(雄文)

图文来源:微信公众号:财经小报告本文素材主要摘录自加来道雄的《Hypersapce》和丘成桐的《The Shape of Inner Space》。作者希望凭籍本文,回顾一下两百年来的科学史,看看那些代表着人类最高心智的数学家、物理学家们前仆后继探究…

3D模型格式解析(OBJ)

文章目录OBJ格式解析一、OBJ格式二、vtkOBJReader源码解析1.主要部分总结OBJ格式解析 通过解读vtk源码中对OBJ文件的读取代码,讲解如何获取obj模型的顶点(vertex)信息,法线信息,纹理信息以及点(Point)、线、面等主要元素的提取。 一、OBJ格式…

《动手学深度学习》第一天 (2.1+2.2)

2.1 获取和运行本书的代码 2.1.1获取代码并安装运行环境 第一步: 安装Miniconda ,由于我的电脑已经安装过Anaconda,所以就没有再安装Miniconda了。 第二步:下载代码,地址 https://zh.d2l.ai/d2l-zh-1.0.zip 第三步…

从技术到科学,中国AI向何处去?

来源: 科学网编辑:宗华排版:华园作者:金榕(阿里巴巴达摩院副院长、原密歇根州立大学终身教授)● AI时代序幕刚拉开,AI目前还处于初级阶段,犹如法拉第刚刚发现了交流电,还…

QT高级编程之基本函数用法

1.QString类函数介绍 toInt()函数,可以将整型按照不同进制转换为QString对象;number()函数,可以将QString对象转换为不同进制的数字; 2.文档查询方法:通过Qt Creator编辑器通过帮助->索引->QString查看QString…

Linux命令整理 —— vi 和 vim 编辑器

一、目录结构 二 、vim 和 vim 编辑器 2.1【基本介绍】 所有的 Linux 系统都会内建 vi 文本编辑器。 vim 具有程序编辑的能力,可以看做是 vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方…

网络版ATM项目的实现——客户端

网络版的ATM实现思路 客户端 1 #include "customer.h"2 3 static int sockfd;4 5 /*int create_msg_queue_c(int key)6 {7 //创建消息队列8 int msgid msgget(key,IPC_CREAT|0644);9 if(0 > msgid)10 {11 perror("msgget");12…

为什么航空发动机那么难造?看看3D工作原理

来源:网络目前大部分航空发动机都是属于燃气涡轮型,民用客机的发动机突出的安全性和可靠性,而军用发动机在这个基础上还追求更大的推力,以及开加力时的最大推力。由此可见,航空发动机领域中最强者必然是军用航发&#…

OSGB格式解析

主要介绍倾斜摄影数据OSGB二进制数据的解析,首先简单介绍一下OpenSceneGraph相关技术,并介绍倾斜摄影数据的组织结构,着重分析OSGB格式的相关字段,最后逐字节对OSGB数据进行解析并通过OpenSceneGraph对数据进行可视化,…

《动手学深度学习》 第二天 (自动求梯度)

2.3、自动求梯度 MXNet提供的autograd模块可以用来自动求梯度。 2.3.1 一个简单的栗子 这里我们要求对函数 y 2xTx (2乘以x的转秩乘以X)求关于列向量 x 的梯度。(使用jupyter notebook) 1、 创建变量x,并赋初值 x nd.arange(4).reshape((4,1)) #…

JS DOM节点增删改查 属性设置

一.节点操作增createElement(name)创建元素 appendChild();将元素添加 删获得要删除的元素 获得它的父元素 使用removeChild()方法删除 改第一种方式:使用上面增和删结合完成修改第二中方式:使用setAttribute();方法修改属性 使用innerHTML属性修改元素的内容 查<s…

CMake基本用法与项目编译

1.简介 1.1 CMake编译项目主要是 通过编写CMakeList.txt文件项目的每个子文件夹下分别编写CMakeList.txt&#xff0c;通过CMake工具来根据CMakeList文件生成makefile&#xff0c;最后编译成可执行文件。 1.2 通过CMake可以编译不同版本的vs项目&#xff0c;方便在不同版本的vs…

《动手学深度学习》 第二天 (线性回归)

3.2 线性回归的从零开始实现 只利用NDArray和autograd来实现一个线性回归的训练。 首先&#xff0c;导入本节中实验所需的包或模块&#xff0c;其中的matplotlib包可用于作图&#xff0c;且设置成嵌入显示。 %matplotlib inline from IPython import display from matplotli…

Gartner发布2021年新兴技术成熟度曲线

来源&#xff1a;Gartner中国8月24日&#xff0c;Gartner 公司最新发布了“2021年新兴技术成熟度曲线”&#xff08;Hype Cycle for Emerging Technologies&#xff0c;2021&#xff09;。其中&#xff0c;建立信任&#xff0c;加速增长以及塑造变革将是三大主要趋势&#xff0…

Vue语法学习第一课——插值

学习关于Vue的插值语法 ① 文本值 &#xff1a; "Mustache"语法&#xff0c;即双大括号 1 <span>Message:{{msg}}</span> 注&#xff1a;双大括号中的msg值改变&#xff0c;插入的内容也会随之改变&#xff0c;可通过v-once指令限制&#xff0c;但会影响…

计算方法之方程求根、线性方程组求解、插值方法、数值积分简介

提示:本文章主要通过介绍方程求根、线性方程组求解、插值方法、数值积分等相关方法的理论知识,并运用相关方法来解决一个实际的问题,文章中简单介绍了二分法、不动点迭代,牛顿法、Scant Method等方程求根方法,Gauss-Seidel迭代,Jacobi迭代,SOR迭代,Gauss消元法等方程组…

hadoop 重新格式化 NameNode

【问题描述】 在安装配置hadoop的过程中&#xff0c;很可能发生错误导致datanode或者namenode 启动失败&#xff0c;这时我们可以选择重新格式化 namenode。 一、删除data数据和log日志 二 、使用命令 bin/dfs namenode -format 重新格式化 【注意事项】 为什么不能一直格式…

人工智能“上位”会让程序员消失吗?

大脑以及二进制代码&#xff08;图&#xff1a;Canva&#xff09;来源&#xff1a;Forbes作者&#xff1a;Nisha Talagala编译整理&#xff1a;科技行者写代码已经成了许多工作的一项关键技能。一些国家和学校甚至认为&#xff0c;编程语言是一种可以接受的外语。而在各种熙熙攘…

分类的IP地址

现有物理地址再有IP地址IP地址的表示方法为点分十进制法IP地址的设计思想&#xff1a;网络部分 主机部分 分类的IP地址 特征&#xff1a;根据不同特征的IP地址&#xff0c;事先约定好网络号所占的位数和主机号所占的位数。 A类地址 全球一共有27-2 个A类网络&#xff0c;每…

人工智能之深度优先,广度优先,贪婪最佳优先搜索,A*搜索以及爬山法与遗传算法

项目场景: 1. 分别用宽度优先、深度优先、贪婪算法和A*算法求解“罗马利亚度假问题”。 2. 分别用爬山法和GA算法求解n皇后问题。 文章目录 项目场景:一、度假场景1.1 问题描述2.1 问题分析:1.3 解决方案:1.4 运行结果二、N皇后问题2.1 问题描述2.2 数据存储结构2.3 算法思…