彗星班

您所在的位置:网站首页 selenium调用chrome 彗星班

彗星班

2023-04-08 22:10| 来源: 网络整理| 查看: 265

配置浏览器和利用框架进行测试

1. 启动三大常用浏览器

环境准备:新建一个文件夹命名为MyDriver,和上述的Drivers文件夹放在同一层级,并且在MyDriver文件夹中新建一个Getbrowser.py的Python编译文件,如下图所示:

准备好了上述环境,接下来会在Getbrowser.py中利用代码来具体实现如何启动常用的浏览器

1.1 IE浏览器

import os from selenium import webdriver #从selenium组件包中引入webdriver def IE(): ifos.name == 'nt': #Windows系统 IEDriver =os.path.join(os.path.abspath('..'),'Drivers','IEDriverServer.exe') #利用相对路径去寻找Drivers文件夹的IE驱动文件夹(推荐) #IEDriver2 ="D:\John's Code Project\Python-selenium\Drivers\IEDriverServer.exe" #利用绝对路径去寻找Drivers文件夹的IE驱动文件夹 os.environ['webdriver.ie.driver']= IEDriver #os.environ['webdriver.ie.driver']= IEDriver2 #将IE驱动文件路径赋给环境变量webdriver.ie.driver driver =webdriver.Ie(IEDriver) #启动IE浏览器 driver.maximize_window() #浏览器最大化 driver.quit() #退出浏览器,并杀掉其进程 else: print ("IE cannot be ran onnon-Windows system!") #IE浏览器无法在非Windows系统下运行 1.2 Chrome浏览器 def Chrome(): if 'nt' in os.name: CDriver =os.path.join(os.path.abspath('..'),'Drivers','chromedriver.exe') #利用相对路径去寻找Drivers文件夹的Chrome驱动文件夹(推荐) #CDriver2 = "D:\John's CodeProject\Python-selenium\Drivers\chromedriver.exe" #利用绝对路径去寻找Drivers文件夹的Chrome驱动文件夹 elif 'posix' in os.name: #Mac OS X系统 CDriver =os.path.join(os.path.abspath('..'),'Drivers','chromedriver') #CDriver2 = "D:\John's Code Project\Python-selenium\Drivers\chromedriver" os.environ['webdriver.chrome.driver'] =CDriver #os.environ['webdriver.chrome.driver']= CDriver2 #将Chrome驱动文件路径赋给环境变量webdriver.chrome.driver driver = webdriver.Chrome(CDriver) #启动Chrome浏览器 driver.maximize_window() #浏览器最大化 driver.quit() #退出浏览器,并杀掉其进程

1.3 Firefox浏览器

与IE,Chrome浏览器驱动文件设置方法不同,Firefox的Gecko驱动文件需要先手动复制或者脚本方法复制(下列例子中代码会涉及)到Firefox浏览器所在的浏览器目录。默认为: C:\Program Files\Mozilla Firefox。若浏览器安装在其他目录下,则设置到自定义的目录。否则,Firefox浏览器会因为设置问题而无法启动。

def FireFox(): if 'nt' in os.name: #Windows 系统 FFDriver =os.path.join(os.path.abspath('..'),'Drivers','geckodriver.exe') #定义Firefox浏览器geckodriver所在的路径 FFBrowser = 'C:\Program Files\MozillaFirefox' #设置Firefox浏览器所在的目录,非该驱动文件的所有路径 if notos.path.exists(os.path.join(FFBrowser,'geckodriver.exe')): shutil.copy(FFDriver,os.path.join(FFBrowser,'geckodriver.exe')) #将Drivers目录中的geckodriver.exe复制到Firefox浏览器所在目录下 os.environ['PATH'] = FFBrowser #将浏览器所在目录设置到系统变量PATH driver =webdriver.Firefox(FFBrowser) #启动Firefox浏览器 driver.maximize_window() #浏览器最大化 driver.quit() #退出浏览器,并杀掉其进程

2. 利用Python自带UnitTest框架进行首次测试

Unittest框架是Python自带的单元测试的框架,由三部分组成,分别是setUp,test方法和tearDown。其结构类似于Java Selenium中的TestNG框架

在MyDriver文件夹新建一个py文件,暂时命名为test.py,与Getbrowser.py同层级,如下所示:

先对Getbrowser.py进行小幅度修改,将上述driver.quit()方法更改为return driver. 目的是能够被测试用例调用不同的浏览器驱动方法。

现在进入test.py进入第一个unittest测试用例的编写:

import os import time import Getbrowser #引入Getbrowser,以便调用不同的浏览器 import unittest #引入unittest单元测试框架 class RunSogou(unittest.TestCase): #新建一个unittest的TestCase的类 def setUp(self): #运行测试用例前需要执行的方法 self.driver = Getbrowser.Chrome() #调用Getbrowser的Chrome浏览器,也可调用IE,Firefox浏览器 def testRunSogou(self): #测试用例主方法,必须以test开头命名,否则无法运行 driver = self.driver driver.get("搜狗搜索引擎 - 上网从搜狗开始") time.sleep(2) self.assertIn('搜狗搜索',driver.title) time.sleep(2) #以上方法为打开搜狗主页,并验证网页标题正确与否,涉及的代码会在后续章节”常见使用方法”,详细说明,这里只需了解即可 def tearDown(self): #运行测试用例完毕后执行的方法 self.driver.quit() #退出浏览器 if __name__ == '__main__': unittest.main() #执行unittest的主方法,则会运行上述脚本

接下来运行脚本,就可以看到Chrome浏览器打开搜狗主页了

运行成功且没有发现任何问题,unittest会返回测试用例成功执行的消息:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3