欢迎大家阅读有关使用Python的硒的最新系列教程。这是第一个基本介绍视频教程。
Web UI自动化是指自动执行在Web浏览器窗口中执行的操作,如导航到网站、填写表单(包括处理文本框、按钮和下拉列表)、提交表单、浏览网页、处理弹出窗口等。Selenium WebDriver可以自动执行所有这些任务。它可以与今天可用的所有类型的Web浏览器交互,如Firefox、Internet Explorer、Safari、Chrome、Opera等。
Selenium是开源的,它的库可以使用不同的编程语言来执行WebUI自动化测试,Python就是其中之一。
Selenium WebDriver Client Library for Python使我们能够利用Selenium WebDriver提供的所有功能,并与Selenium独立服务器交互,以执行基于浏览器的应用程序的自动化测试(包括远程和分布式测试)。
值得一提的是,Selenium Webdriver库与一系列Python版本兼容,这些版本包括Python2.6、2.7和3.2-3.7。几乎所有的Python版本。
所以我应该提一下,在Python上安装Selenium Webdriver和使用其他库一样简单。只需使用以下命令:
pip install selenium
在安装Selenium之后,您应该决定将哪个浏览器用于您的脚本。当我用Selenium创建一些东西时,我使用的是Firefox,但是在Chrome上一切都应该是一样的,所以你要用什么由你决定。当您决定要使用哪种浏览器时,您应该下载适用于您的浏览器的Selenium驱动程序。打开此链接,找到适用于Firefox的GeckoDriver或适用于Google Chrome的Chrome驱动程序,或者选择您正在使用的任何工具。如果您将浏览器安装到默认位置,则这些驱动程序应该放在您编写Selenium脚本的同一文件夹中,或者,您应该将它们添加到您的环境变量中。我不确定它在Linux或iOS上是如何工作的,但应该不难找到。THIS
下面是我的基本示例脚本,我们打开浏览器,转到“www.google.com”网站,搜索Pylessons.com,然后从找到的元素中提取10个并将它们打印出来。最后,我们关闭浏览器。下面是详细的代码解释。
from selenium import webdriver
# create a new Firefox session
driver = webdriver.Firefox()
driver.implicitly_wait(30)
driver.maximize_window()
# Navigate to the application home page
driver.get("http://www.google.com")
# get the search textbox
search_field = driver.find_element_by_name('q')
# enter search keyword and submit
search_field.send_keys("Pylessons.com")
search_field.submit()
# get the list of elements which are displayed after the search
# currently on result page using find_elements_by_class_name method
lists = driver.find_elements_by_class_name("LC20lb")
# get the number of elements found
print("Found "+str(len(lists))+" searches:")
# print not more than 10 list elements
i = 0
for listiems in lists:
print(listiems.text)
i += 1
if(i > 10):
break
# end session and close the browser window
driver.quit()
解码上面的脚本
让我们逐行讨论该脚本,以便更好地简要理解Selenium WebDriver语句。在接下来的教程中,将有更多关于不同Selenium WebDriver函数的内容。
步骤1。
Selenium Webdriver模块实现支持不同浏览器的类,包括Firefox、Chrome、Internet Explorer、Safari、Other和RemoteWebDriver,以便在远程机器上可用的浏览器上进行测试。因此,我们需要从Selenium包导入WebDriver以使用Selenium WebDriver方法,如下所示:
from selenium import webdriver
第2步。
接下来,我们需要浏览器的对象,我们将使用它来加载网页。Browser对象提供可编程接口,以便使用Selenium命令与浏览器通信。在测试脚本中,我们使用的是Firefox。我们可以创建一个Firefox实例,如以下代码所示:
driver = webdriver.Firefox()
执行上述语句时,将启动一个新的Firefox窗口。我们正在为驱动程序实例进行以下设置:
driver.implicitly_wait(30)
driver.maximize_window()
我们正在配置Selenium在30秒内启动浏览器或打开新选项卡的超时。下一条语句将浏览器最大化为全窗口。
第三步。
接下来,我导航到“http://www.google.com,”,将给定的url传递给driver.get()方法。调用get()方法后,Webdriver将等待页面在浏览器窗口中呈现,并将控件发送回脚本。加载页面后,Selenium将与页面上的各种元素交互。接下来,在测试脚本中,我们将查看不同的Selenium WebDriver函数,这些函数搜索HTML对象、向Web组件发送文本、模拟按键事件、单击按钮和从下拉菜单中选择等。让我们看看在其他步骤中使用的所有这些函数。
第四步。
首先,我们将找到Google搜索文本框来为搜索提供文本输入。搜索文本框的名称属性为“q”,您可以从下面给出的代码中标识它:
search_field = driver.find_element_by_name('q')
第5步。
在找到搜索文本框之后,我们尝试通过使用send_keys()方法提供一个新值来与文本框元素交互。随后,调用Submit()方法将转发搜索请求进行处理。
search_field.send_keys("Pylessons.com")
search_field.submit()
提交搜索请求后,Firefox驱动程序将显示Google返回的结果页面。结果页面显示与搜索文本匹配的条目列表。每个entry div元素都有一个“LC20lb”类,可以使用“find_element_by_class_name”方法进行访问。这样,我们就会得到一个元素列表。
lists = driver.find_elements_by_class_name("LC20lb")
项目列表可能会扩展到太多页面,因此我们将代码限制为打印捕获的前10个条目:
i = 0
for listiems in lists:
print(listiems.text)
i += 1
if(i > 10):
break
摘要
上面的示例让我们真正深入地了解了如何结合使用Selenium、WebDriver和Python来创建一个简单的测试自动化脚本。这是一个基本的示例脚本。在接下来的教程中,我们将在Python中使用Selenium Library的其他有趣而复杂的功能。但是,如果您想要进入下一个级别,并希望使用Selenium Python创建测试自动化套件,请遵循未来的教程。只有一种方法可以学习硒,那就是自动化!
最初发表于https://pylessons.com/Selenium-with-python-basic-introductionhttps://pylessons.com/Selenium-with-python-basic-introduction
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/09/selenium-with-python%ef%bc%8c%e5%9f%ba%e7%a1%80%e7%9f%a5%e8%af%86%e4%bb%8b%e7%bb%8d/