让我们开始研究硒的一些有趣的用途｡
现在, 我们将在这个练习中使用一个叫做Selenium, Etsy的网站｡
因为这个网站给了我们一个很好的测试场地, 让我们可以玩网站｡
例如, 如果我在这里输入表单, 并进行简单的表单演示｡
我实际上可以使用这个网站来测试在显示消息中输入的东西, 看看我们是否可以只用代码来做这件事｡
所以我要做的第一件事就是复制这个URL｡
在我们的例子中, 我们将只选择输入表单和简单的表单演示｡
以后, 你可以自己尝试不同的东西｡
但这试图模仿大多数网站功能, 如表单输入, 表格, 警报和模型,
并允许您测试您的代码真的很好｡
让我们复制这个URL, 我要做的第一件事是, 好吧, 我们是自动化测试人员｡
我们, 我们不再手动输入了｡
我们让Selenium来帮我们｡
所以我要做的第一件事就是说, 嘿, Chrome浏览器, 我想让你得到这个URL｡
在我的例子中, 我会说, 嘿, 这是我刚刚复制并粘贴的URL｡
Chrome浏览器, 帮我拿过来.
让我们运行代码｡
看看这个｡
我打开了带有selenium的浏览器, 它把我带到了我指定的URL｡
大多数情况下, 这将是我们转到特定URL的第一行｡
现在, 我希望窗口最大化｡
所以, 我们再一次说Chrome浏览器, 我会说最大化｡
窗口, 以便我们将有一个完整的窗口这一次左右｡
现在我将再次关闭它, 因为每次运行这段代码时, 都会打开一个新窗口｡
所以我们先把它关上吧｡
现在, 我接下来要做的是检查我们是否在正确的页面上｡
Selenium的工作方式是查看这个页面并尝试抓取或查找页面中的元素, 它使用构建这个页面的HTML来完成此操作｡
现在, HTML就是右键单击页面中的任何内容, 然后单击Inspect｡
一个开发者控制台将出现在这里的“元素”选项卡中, 它实际上向您显示了页面是如何使用HTML构建的｡
HTML允许网页在浏览器中显示, 并且它们仅包含关于每个元素的信息｡
在我们的例子中, 请看这里是如何描述完整的自动化测试教程的｡
HTML说, 嘿, 我想让你在这里写这段文字｡
我们来看一下名称和口号, 或者打开这个｡
我们看到硒元素在这里变得很容易｡
我们有一个图像, 就在这里｡
从本质上讲, HTML允许我们在网站上显示一些文本和一些基本内容｡
所以有了硒, 我们就能抓住｡
这些元素, 检查它们, 修改它们, 做我们想做的事情｡
我们一路走上去给你看这个｡
每个HTML页面都有一个title标签｡
标题就是显示在顶部的东西｡
在我们的例子中, 它说硒容易演示｡
所以我能做的就是复制这个｡
在我们的代码中, 字符串selenium是一个简单的演示｡
是chrome浏览器的点标题吗？
现在让我们在这里打印看看我们得到了什么｡
我要运行这个代码｡
浏览器随即开启｡
如果我回到代码, 看起来我得到了真的, 因为文本在标题中｡
如果我做一些类似Python的简单演示｡
我负责这个｡
你会看到我会变得虚伪｡
现在我们有一个更简单的方法来检查我们的代码｡
只要一直运行print, 就可以使用Python自带的assert关键字｡
现在你不会经常看到这个,
因为这里会发生的是如果我们断言某个东西, 如果返回false, 它实际上会出错并退出代码｡
所以如果我运行这个｡
你会看到我得到一个错误｡
带有断言错误｡
所以这是一个很好的方法来测试某个东西是否存在｡
但让我们回到之前的内容, 这是Selenium Easy演示｡
这将给予我们的代码为真而不是错误｡
还有一件事, 我们这里可能有很多窗户, 把它们关上吧.
别担心, 如果需要的话, 我稍后会告诉你如何关闭这些按钮｡
所以我向你们展示了如何从这里提取标题｡
另一件我能做的事情是让我们说, 嘿｡
我在HTML中看到这里有一个head标签, 还有一个body标签｡
所以我可以这样做Hey assert.
身体｡
如果我在这里单击运行｡
嗯嗯嗯
看来我们抓不到尸体了｡
那我们能做些什么呢？
我们与这样的页面进行交互的另一种方式是使用选择器｡
现在是选择器, 我将提供一个链接, 指向一些我们可以使用的chichi,
但选择器只是我们从页面中获取项目的方法｡
我们可以通过ID､ 名称､ 类､ 标签､ 链接文本来获取条目｡
我们可以做很多不同的事情｡
现在让你们看看它是什么样子｡
如果我转到这里的HTML页面, 元素, 你会看到, 如果我们想要抓取, 比如说在我们的例子中｡
我们要抓住这个按钮｡
好, 我可以右键单击, 单击检查｡
在这里我看到按钮有一个类型, 一个类, 还有一些显示消息的文本.
如果我去小抄, 我看到这里, 我可以通过不同的抓取东西｡
不同的选择｡
我们可以通过CCS来实现｡
我们可以通过环节税来做到｡
我们可以通过标记名称来完成｡
我们可以通过类名来实现｡
您可以看到这里显示驱动程序通过类名查找元素｡
这就是我们如何选择它｡
那就这么办吧｡
我将复制并粘贴它, 然后简单地说, 嘿, Chrome浏览器, 我希望你按类名找到元素｡
我们使用的类名是什么？
在我们的例子中, 类名是｡
债券违约｡
所以我会说BTN｡
默认值｡
这将是我们的按钮｡
所以如果我运行这个程序, 简单地打印出这样的按钮, 如果我运行我的代码｡
您将在这里看到, 我能够从Selenium Web驱动程序中获取一个web元素｡
它看起来像是一个元素｡
我不太清楚这是怎么回事, 但我们抓住了一个按钮｡
现在, 我们所抓取的这个按钮元素和我们在这里看到的完全一样｡
如果我再次检查该元素, 我们就捕获了这部分代码｡
所以这个硒现在包含了这个按钮供我们使用｡
作为一个捷径, 你可以看到这里写着等于等于美元符号0｡
这实际上允许我们选择这个元素并在我们称之为控制台的东西中使用它｡
所以如果我清空控制台, 只说dollar zero, 你会看到这就是我们捕获的元素｡
在这里, 我们可以用不同的方式与它互动｡
其中一种方法是说Get之类的话｡
属性｡
和一个称为内部HTML的属性｡
现在在HTML中, 就是简单地抓取HTML中的任何东西, 也就是按钮｡
然后你可以看到这里的按钮关闭｡
所以我们要抢节目消息｡
如果我这样做, 假设我们把这个按钮称为text, 然后打印这个按钮的文本｡
如果我运行这个｡
实际上我会得到一个错误, 因为你可以看到我的语法是错误的｡
我尝试打印面包文本, 然后得到属性｡
因此, 请确保我们像这样移动括号, 然后再次运行代码｡
我们走吧｡
您可以看到这里有一条显示信息
所以我能够通过代码检查页面｡
找出我在这个案子中想要控制的东西｡
也许是这个按钮, 我可以使用get attribute方法获取文本｡
同样, 我将链接到所有这些方法｡
当你进入自动化领域时, 你必须习惯它们｡
但是如果你了解基本的HTML, 那么它们就很容易理解｡
实际上并不多｡
我会说大概有20种左右非常有用的方法, 你可以学习和使用｡
但你知道吗？
现在, 这不是那么令人兴奋｡
我的意思是, 是的, 当然｡
我们打开了一个浏览器｡
我们要看一下按钮, 然后显示它显示的文本｡
但我想模拟一下我们在浏览器上做的事情｡
假设我们有这个输入｡
我想修改这个页面, 在这里我输入了一些文本｡
我点击显示消息, 就像, 如果我登录到一个网站或上传到Reddit｡
让我们在下一个视频中实现自动化｡