软件测试|| Selenium WebDriver的初步应用,初学者来了解一下。
不点蓝字,我们哪来故事?
前言
Selenium WebDriver是在于Python的一个功能模块。
昨天我分享了一篇关于《》的文章,如果大家对于Selenium WebDriver如何安装充满疑问,那么该文章就能很好的解决大家心中的疑惑。
当我们明白Selenium WebDriver模块被安装到Python的目录中后,就可以使用from…import语句导入Selenium WebDriver模块,并通过新建对象调用SeleniumWebDriver模块中被封装的方法。
本篇将具体介绍关于Selenium WebDriver如何应用的问题,因为我们安装的目的就是如何对其应用。
新建一个test.py文件(模块),并导入Selenium WebDriver模块,具体示例代码如下。
from selenium import WebDriver
【代码分析】
● 第01行代码,通过from…import语句导入Selenium WebDriver模块,当Selenium Webdriver模块导入进来后,接下来就只需关心实例的新建。
具体示例代码如下。
from selenium import WebDriver
driver.webDriver.Firefox()
【代码分析】
● 第02行代码,新建一个Firefox浏览器实例driver,并启动浏览器,当实例建立后,只需关心调用实例的方法即可,此行代码请注意大小写。
另外,SeleniumWebDriver启动浏览器的过程可能会有一些慢,请耐心等待一会儿。
【运行结果】
第02行代码运行的结果:系统自动启动Firefox浏览器。
具体示例代码如下。
from selenium import WebDriver
driver.webDriver.Firefox()
driver.maximize_window()
【代码分析】
● 第03行代码,通过driver实例调用maximize_window()方法将浏览器的窗口最大化。
【运行结果】
第03行代码运行的结果:系统自动将Firefox浏览器的窗口最大化。
调用get()方法,打开测试网页http://account.ryjiaoyu.com/log-in(人民邮电出版社人邮教育的登录页面),具体示例代码如下。
from selenium import WebDriver
driver.webDriver.Firefox()
driver.maximize_window()
driver.get("http://account.ryjiaoyu.com/log-in")
【代码分析】
● 第04行代码,通过driver实例调用get ()方法来获取网址并打开人民邮电出版社人邮教育的登录页面。
【运行结果】
第04行代码运行的结果:系统自动打开人民邮电出版社人邮教育的登录页面。
具体示例代码如下。
from selenium import WebDriver
driver.webDriver.Firefox()
driver.maximize_window()
driver.get("http://account.ryjiaoyu.com/log-in")
driver.find_element_by_xpath("//input[@id='Email']").clear
【代码分析】
● 第05行代码,find_element_by_是Selenium Webdriver提供的用于定位元素的方法。
一旦定位到了该元素,就可以使用Selenium Webdriver提供clear()的方法来清理输入框中的文本内容。
【运行结果】
具体示例代码如下。
from selenium import WebDriver
driver.webDriver.Firefox()
driver.maximize_window()
driver.get("http://account.ryjiaoyu.com/log-in")
driver.find_element_by_xpath("//input[@id='Email']").clear
driver.find_element_by_xpath("//input[@id='Email']").send_keys("[email protected]")
【代码分析】
【运行结果】
具体示例代码如下。
from selenium import WebDriver
driver.webDriver.Firefox()
driver.maximize_window()
driver.get("http://account.ryjiaoyu.com/log-in")
driver.find_element_by_xpath("//input[@id='Email']").clear
driver.find_element_by_xpath("//input[@id='Email']").send_keys("[email protected]")
driver.find_element_by_xpath("//input[@id='Password']").clear
driver.find_element_by_xpath("//input[@id='Password']").send_keys("testpress")
driver.find_element_by_xpath("//input[@value='登录']").click()
【代码分析】
● 第07行代码,通过clear()方法清理密码输入框的文本信息。
● 第08行代码,通过send_keys()方法向密码输入框输入具体的密码testpress。
● 第09行代码,通过如下面的这个代码driver.find_element_by_xpath("//input[@value='登录']")定位到登录按钮,随后使用Selenium Webdriver提供的click()方法进行单击操作从而完成登录操作。
【注意事项】
● 第09行代码中的xpath表达式“//input[@value='登 录']”中的“登录”字符串中含有空格,如不加以注意,则无法进行登录按钮的单击操作,这个表达式可以由ChroPath工具自动生成。(关于ChroPath工具,请阅读《》里阳哥的介绍。)
【运行结果】
第07行代码运行的结果:系统自动清理人民邮电出版社人邮教育登录主页中的密码输入框。
第08行代码运行的结果:系统自动向密码输入框输入密码testpress。
第09行代码运行的结果:系统自动单击登录按钮并完成登录操作。
具体示例代码如下。
from selenium import WebDriver
import time
driver.webDriver.Firefox()
driver.maximize_window()
driver.get("http://account.ryjiaoyu.com/log-in")
time.sleep(3)
driver.find_element_by_xpath("//input[@id='Email']").clear
driver.find_element_by_xpath("//input[@id='Email']").send_keys("[email protected]")
driver.find_element_by_xpath("//input[@id='Password']").clear
driver.find_element_by_xpath("//input[@id='Password']").send_keys("testpress")
driver.find_element_by_xpath("//input[@value='登录']").click()
【代码分析】
● 第02行代码,通过import关键字导入time模块。
● 第06行代码,调用time模块中的sleep()函数,让程序等待3秒,以便让登录页面的元素完成加载。
【运行结果】
本示例代码中由于在第06行代码中加入了time.sleep(3)方法,所以在人民邮电出版社人邮教育登录主页打开之后,程序将会等待3秒,以便让登录页面的元素完全加载。
其他运行结果不变。
具体代码如下。
from selenium import WebDriver
import time
driver.webDriver.Firefox()
driver.maximize_window()
driver.get("http://account.ryjiaoyu.com/log-in")
time.sleep(3)
driver.find_element_by_xpath("//input[@id='Email']").clear
driver.find_element_by_xpath("//input[@id='Email']").send_keys("[email protected]")
driver.find_element_by_xpath("//input[@id='Password']").clear
driver.find_element_by_xpath("//input[@id='Password']").send_keys("testpress")
driver.find_element_by_xpath("//input[@value='登录']").click()
driver.quit
【代码分析】
● 第12行代码,通过quit()方法关闭浏览器。
【运行结果】
第12行代码运行的结果:关闭浏览器。
具体示例代码如下。
for i in range(1,11):
from selenium import WebDriver
import time
driver.webDriver.Firefox()
driver.maximize_window()
driver.get("http://account.ryjiaoyu.com/log-in")
time.sleep(3)
driver.find_element_by_xpath("//input[@id='Email']").clear
driver.find_element_by_xpath("//input[@id='Email']").send_keys("[email protected]")
driver.find_element_by_xpath("//input[@id='Password']").clear
driver.find_element_by_xpath("//input[@id='Password']").send_keys("testpress")
driver.find_element_by_xpath("//input[@value='登录']").click()
driver.quit
【代码分析】
● 第01行代码,range()函数是Python中的一个函数,range(1,11) 的意思是生成1,2,3,4,5,6,7,8,9,10的一个列表,但不包括11,这一点要注意。fori in range(1,11)的意思是说通过range(1,11)函数给i赋值,i依次取这10个值,每取一次执行一下for循环体内的语句,i一共取了10次值,所以for循环体的语句也被执行了10次。
【注意事项】
● 由于使用了for循环,所以for循环代码必须缩进,按一下“Tab”键就好,for语句本身不需要缩进。
【运行结果】
本示例代码中由于在第01行代码中加入了for循环,系统将连续登录10次,并最终关闭浏览器。
本节说明如下。
当完成最后一个循环操作时,可以说已经成功地迈进了Selenium WebDriver自动化工具的大门了。
本节介绍了如何应用Selenium WebDriver模块中的方法,并以此作为初学者的起点,这些方法虽然只是Selenium WebDriver模块中的一些基础方法,但只要掌握了它的思想,调用其他方法也就不难了。
有关SeleniumWebDriver模块内部封装的更多操作网页元素的方法,大家可在工作之后通过相关图书、网络资料、公司培训再行深入了解。
好了,今天分享到此哦,喜欢我,就关注我,期待下次相遇哦,么么哒~
end
往期推荐
扫描二维码
获取更多精彩
阳哥说IT