vlambda博客
学习文章列表

软件测试|| Selenium WebDriver的初步应用,初学者来了解一下。


           不点蓝字,我们哪来故事?


前言

Selenium WebDriver是在于Python的一个功能模块。


昨天我分享了一篇关于《》的文章,如果大家对于Selenium WebDriver如何安装充满疑问,那么该文章就能很好的解决大家心中的疑惑。

当我们明白Selenium WebDriver模块被安装到Python的目录中后,就可以使用from…import语句导入Selenium WebDriver模块,并通过新建对象调用SeleniumWebDriver模块中被封装的方法。

本篇将具体介绍关于Selenium WebDriver如何应用的问题,因为我们安装的目的就是如何对其应用。


1、导入Selenium WebDriver模块

新建一个test.py文件(模块),并导入Selenium WebDriver模块,具体示例代码如下。

from selenium import WebDriver

【代码分析】

● 第01行代码,通过from…import语句导入Selenium WebDriver模块,当Selenium Webdriver模块导入进来后,接下来就只需关心实例的新建。


2、新建对象并启动浏览器

具体示例代码如下。

from selenium import WebDriverdriver.webDriver.Firefox()

【代码分析】

● 第02行代码,新建一个Firefox浏览器实例driver,并启动浏览器,当实例建立后,只需关心调用实例的方法即可,此行代码请注意大小写。

另外,SeleniumWebDriver启动浏览器的过程可能会有一些慢,请耐心等待一会儿。

【运行结果】

第02行代码运行的结果:系统自动启动Firefox浏览器。


3、调用maximize_window()方法让窗口最大化

具体示例代码如下。

from selenium import WebDriverdriver.webDriver.Firefox()driver.maximize_window()

【代码分析】

● 第03行代码,通过driver实例调用maximize_window()方法将浏览器的窗口最大化。

【运行结果】

第03行代码运行的结果:系统自动将Firefox浏览器的窗口最大化。


4、调用get()方法打开一个网页

调用get()方法,打开测试网页http://account.ryjiaoyu.com/log-in(人民邮电出版社人邮教育的登录页面),具体示例代码如下。

from selenium import WebDriverdriver.webDriver.Firefox()driver.maximize_window()driver.get("http://account.ryjiaoyu.com/log-in")

【代码分析】

● 第04行代码,通过driver实例调用get ()方法来获取网址并打开人民邮电出版社人邮教育的登录页面。

【运行结果】

第04行代码运行的结果:系统自动打开人民邮电出版社人邮教育的登录页面。


5、通过clear()方法来清理文本

具体示例代码如下。

from selenium import WebDriverdriver.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()的方法来清理输入框中的文本内容。

【运行结果】


6、调用send_keys()方法来输入文本内容

具体示例代码如下。

from selenium import WebDriverdriver.webDriver.Firefox()driver.maximize_window()driver.get("http://account.ryjiaoyu.com/log-in")driver.find_element_by_xpath("//input[@id='Email']").cleardriver.find_element_by_xpath("//input[@id='Email']").send_keys("[email protected]")

【代码分析】

【运行结果】


7、通过click()方法进行单击操作

具体示例代码如下。

from selenium import WebDriverdriver.webDriver.Firefox()driver.maximize_window()driver.get("http://account.ryjiaoyu.com/log-in")driver.find_element_by_xpath("//input[@id='Email']").cleardriver.find_element_by_xpath("//input[@id='Email']").send_keys("[email protected]")driver.find_element_by_xpath("//input[@id='Password']").cleardriver.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行代码运行的结果:系统自动单击登录按钮并完成登录操作。


8、导入time模块

具体示例代码如下。

from selenium import WebDriverimport timedriver.webDriver.Firefox()driver.maximize_window()driver.get("http://account.ryjiaoyu.com/log-in")time.sleep(3)driver.find_element_by_xpath("//input[@id='Email']").cleardriver.find_element_by_xpath("//input[@id='Email']").send_keys("[email protected]")driver.find_element_by_xpath("//input[@id='Password']").cleardriver.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秒,以便让登录页面的元素完全加载。

其他运行结果不变。


9、通过quit()方法关闭浏览器

具体代码如下。

from selenium import WebDriverimport timedriver.webDriver.Firefox()driver.maximize_window()driver.get("http://account.ryjiaoyu.com/log-in")time.sleep(3)driver.find_element_by_xpath("//input[@id='Email']").cleardriver.find_element_by_xpath("//input[@id='Email']").send_keys("[email protected]")driver.find_element_by_xpath("//input[@id='Password']").cleardriver.find_element_by_xpath("//input[@id='Password']").send_keys("testpress")driver.find_element_by_xpath("//input[@value='登录']").click()driver.quit

【代码分析】

● 第12行代码,通过quit()方法关闭浏览器。

【运行结果】

第12行代码运行的结果:关闭浏览器。


10、通过for循环连续登录10次

具体示例代码如下。

for i in range(1,11):from selenium import WebDriverimport timedriver.webDriver.Firefox()driver.maximize_window()driver.get("http://account.ryjiaoyu.com/log-in")time.sleep(3)driver.find_element_by_xpath("//input[@id='Email']").cleardriver.find_element_by_xpath("//input[@id='Email']").send_keys("[email protected]")driver.find_element_by_xpath("//input[@id='Password']").cleardriver.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