Selenium 2|学习笔记

简介: 快速学习 Selenium 2

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践 Selenium 2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15409


Selenium 2

 

内容介绍:

一、多个元素

二、元素交互式操作

三、交互动作

四、执行 JavaScript

 

一、多个元素

然后我们怎样来那个查找这个多个元素的,那么这里就是有一个区别,那我们可以看到前面的这个查找是 find _element ,然后就是说它这里是没有加S的,然后如果你要获取多个元素,那么这里,就是find _elements,然后再加一些选择器,那么这里,实际上就是多加了一个S的一个区别,然后你也可以用这种find _elements加BY.CSS,然后你也可以用这个find _elements,然后传入一个这种类型的对象,然后再插入这个选择参数,那么也是完全一样的。那我们分别运行一下这个结果。

image.gif那可以看到,现在我们就把这个淘宝里面的这个service-bd li这个标签,后来选出来了,我们看一下这个里面它到底是个怎样的内容。我们打开这个淘宝,它实际上是选中了这些所有的这个导航条,那么我们看一下这个元素,实际上是把这所有的这个service-bd里面的所有的这个Li标签都选出来了,那么它一共是有这么多个Li标签,然后它就会以一个列表的形式把这些元素都统一的打印出来。那么比如说如果我们获取单个元素的话,那么它只会打印出单个元素,比如说一个一个的元素。

那么如果它是under elements,那么它会用一个中括号,比如说用一个列表来呈现,它的每一个元素才是当前我们要获取的一个web element,那么它的整个的一个组合,是一个list。一个类型,那么接下来我们再看一下这个by find elements这一个方法,然后实际的结果应该也是类似的,那么可以看到这个原因,结果跟上面的这个也是完全的相同。

然后在这里,也是有类似的一些方法, by name by access by link text等等之类的,我们都可以用来选择一些元素,那么它的选择元素的一个返回结果,都是这种列表的形式,如果我们要获取单个元素,我们可以用它的索引,比如说用一个索引零之类的,也可以获取它的第一个元素。

 

二、元素交互式操作

接下来,我们再说一下这个元素的一个交互操作,比如说我们现在能够获取到一些文本框,还有一些按钮等等之类的,我们可以用这些版的element版的elements等等之类的,然后获取到一些元素的一个引用,然后我们怎样对它来进行操作的。比如说我们想要对这个文本框输入一些文字,然后对这个按钮调用一些点击,那怎么办?

那么在这里,我们就可以用一些简单的新的case,还有一些play等等之类的方法,然后就可以实现这个元素的一些调用了,那么我们在这里首先运行一下这个。

那我可以看到这里,就弹出了一个浏览器,然后它首先输入了一个iPad,然后点击了一下这个搜索按钮,然后跳到了一个搜索的一个界面,那么可以看一下这个网页源代码是怎么做的,那么首先,它是find element翻ID,然后搜索了这个Q这么一个ID为Q的这么一个元素,那么我们返回一下,那么点击这个元素,那么可以看到实际这个输入框,它有一个ID等于Q,实际上它获取到的就是这个,这个输入框,然后它拿到之后,它就调用了一个新的case,这种方法。然后首先它输入一个iPad,然后它输入一个iPad之后,然后time sleep,然后等了一秒之后,然后它又调用了一个clear,比如说他把这个文本框进行清空,清空之后,他又调用了一个sentence,然后他这次,输入的是iPad,然后之后,我们再把这个button来找出来,那么在这里,我们就用这个find a class by class name,然后输入这个button search,那么这个button search,实际上就是把这个拉到下面去好,实际上就是这个搜索按钮,然后这个class等于被填search,那么这样,这样的话,它就会把这个button拿过来,然后我们再调用这个click,然后它就会跳转到一个搜索结果的一个页面,那么我们再重新的看一下这个请求它是怎样来实现的。我们把这个浏览器关闭一下,我们运行一下这个大脑,可以看到这里,它就弹出来一个浏览器,然后它首先输入再发送,等待一秒之后出了一个iPad,然后点击了这个按钮,然后它就会跳转到这个iPad这个搜索结果页面了。

那么这样的话,我们就完成了一些元素的一些交互操作。那么在这里,我们还有一些另外的一些交互操作,在这里就有一些外观。Element,然后你可以调用一下Play的,然后你还可以调用一些其他的一些方法,比如说刚才的,然后还可以进行一些截图,还可以调用一下提交,还可以,就是获取一些另外的一些属性等等之类的,那么你可以查看一下这些相关的一些API,那么在这里就不再进行一一的详细的介绍。

 

三、交互动作

image.gif接下来我们再看一下交互动作,那么交互动作,就是说我们需要驱动这个浏览器为我们执行一些相关的一些交互动作,但是这个交互动作和刚才的这个元素交互动作是不同的,那么这个元素交互动作,我们需要先获取一个侧链的元素,然后这个侧链的元素,然后调用一下这些这些动作的方法,然后才可以完成这个动作交互。

那么这个交互动作,实际上是不同的,那么它是将这个动作附加到这。附加到这个工作链中,然后创建就行,然后这里,它就需要引入一个ActionChains,然后接下来,我们就可以来,比如说我们模拟一个拖拽的一个工作,比如说我们在这里打开一个网址,然后这个地方,然后再就是选中一个拖拽的目标,然后来进行拖拽,我们看一下这个代码的运行结果,那么点击运行。

那么可以看到加载之后,它就会把这个按钮,然后直接拖拽到这里,然后可以看一下这个相关的时间是怎样的,然后首先他是请求了这个,然后接下来他是切换到了一个frame,那么这个frame,实际上就是在网页里面算是一个比较常用的一个标签儿,我们把这个复制一下,然后看一下他这个网页的源代码,是怎样的。

image.gif然后可以看到这里它实际上是有一个 frame,那么有这个 frame,我们就可以调用这个switch to,然后这个就是传入这个frame名称,那么我们可以看到这里它有一个ID, frame result,然后这样的话,我们就相当于已经切换到了这个里面的这个 frame。

然后我们就找一下这个FM里面的这个被拖拽对象,还有拖拽的这个目标,那么这里面,你可以自行展开,那么可以看到点击生态元素,那么可以看到这个,就是一个被拖拽的一个对象,那么它是一个或者说通过ID等等之类的都可以把它获取出来,然后接下来,我们就调用一下这个ActionChinas,然后我们首先需要声明一个ActionChinas这么一个动作链对象,然后接下来我们就运用这个actions,然后调用你的drag and状,然后这个参数,就是这个thoughts,还有它几项,然后这样的话,就会把这个thoughts拖拽到这个touch的这上面,然后再调用这个actions和form,那么这样的话,它就会执行这个动作。

那么这样的话,他就把这一个拖拽到这个地方,那么拖过来之后,他为什么?显示这个状态,那么就说我们的拖拽就已经成功了,那么刚才的这一串代码,就是执行了这一个拖拽的这个动作。那么另外,还有一些更加详细的一个交互动作,然后这个是拖拽多少,然后还有一些相关的键盘的按键等等之类的,然后你可以查看一下这些相关的API,这里也都有介绍。

 

四、执行 JavaScript

image.gif然后接下来我们再看一下一个非常有用的一个方法,也就是执行JavaScript。那比如说,我们在做一些元素交互动作的时候,可能有一些动作,他们没有提供API,比如说我们现在想要实现这个进度条下拉这么一个动作,我们直接用API实现来实现,实际上是非常有难度的,那么我们可以就是通过执行JS,然后来实现这个进度条的一个,那么它这里,就是一个XQ的scrape的这么一个API,然后你在这里,就可以用来传一传一些这个JavaScript的这些语句,然后就可以完成这个JS的执行了。然后这样的话就可以通过JS代码,然后来实现一些浏览器的操作,那也是非常的方便的。

image.gif那么我们在这里就是打开知乎的一个页面,然后我们在这里就是直接下拉到这个网页的最下端,然后。我们再提示提示一个alert,然后我们来运行一下这个代码,我们看一下这里,它首先看到这个加载出来之后,然后下拉可以看到它现在这个镜头上有一点下拉到最下面,然后它出现了一个alert,一个提示框,那么证明它就已经下拉到最下面了,那么这个执行JavaScript也可以用这个ExportScript这个方法来执行。如果你在一些元素交互动作,这些方法比较难实现的时候,你也可以用一些这样的来代替,那么这个相当于一个算是万能的一个方法好。

相关文章
|
JavaScript 搜索推荐 API
Selenium 4|学习笔记
快速学习 Selenium 4
185 0
Selenium 4|学习笔记
|
前端开发 API 定位技术
Selenium 3|学习笔记
快速学习 Selenium 3
100 0
Selenium 3|学习笔记
|
Web App开发 数据采集 前端开发
Selenium 1|学习笔记
快速学习 Selenium 1
67 0
Selenium 1|学习笔记
|
移动开发 前端开发 JavaScript
Selenium WebDriver API 学习笔记(三):浏览器控制
Selenium WebDriver API 学习笔记(三):浏览器控制
123 0
|
测试技术 API Python
Selenium WebDriver API 学习笔记(二):浏览器控制
Selenium WebDriver API 学习笔记(二):浏览器控制
118 0
|
前端开发 测试技术 API
Selenium WebDriver API 学习笔记(一):元素定位
Selenium WebDriver API 学习笔记(一):元素定位
91 0
Selenium学习笔记
--变量 DECLARE @Msg VARCHAR(300) = '', @State INT = 0, @Count INT =0
|
Web App开发 jenkins Java
Jenkins +selenium(学习笔记三十一)
jenkins+selenium可以做到对web自动化的持续集成。 Jenkins的基本操作: 一、新建视图及job 新建视图: 新建job: 可以选择构建一个自由风格的软件项目或者复制已有的ite...
1708 0
|
XML 数据格式
Selenium学习笔记之外部化相关测试数据---xml
我们也可以用xml来定义一个信息更为丰富的UIMap.xml文件,比如,额外还添加控件所属的页,控件的类型,然后解析构建一个XMLParser类来读取相应的值。 1 2 3 4 5 6 7 8 9 10 ...
760 0

热门文章

最新文章