购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.6 Selenium调用不同浏览器

1.5节介绍了Selenium的安装流程,本节开始学习使用Python来开发Selenium脚本调用不同的浏览器,确保搭建的自动化环境能联调成功,为后面正式的脚本学习做好准备。

1.6.1 调用Firefox浏览器

为了后面代码开发和执行的规范和一致性,这里介绍如何在PyCharm中创建和执行Python文件,后面内容如没有特殊说明则以此流程为标准。具体流程如下。

步骤1 打开PyCharm程序。

步骤2 单击Create New Project。

步骤3 选择一个项目路径,单击Create。

步骤4 右击项目→New→Python File→输入文件名如“ff”→单击OK。

步骤5 在新建的文件内输入具体的测试代码。

步骤6 在文件内区域右击,选择Run “ff”执行Python文件。

步骤7 查看运行结果是否与脚本场景所一致,如果一致则表示demo脚本运行成功。

在调用Firefox浏览器时,关键在于启动Firefox的WebDriver示例,关键代码如下。

      driver = webdriver.Firefox()

而除了能正常启动Firefox浏览器之外,还需要测试下能否正常驱动浏览器的行为。为此,通过一小段测试代码来测试浏览器的调用行为。具体内容如下。

      # -*- coding:utf-8 -*-
      from selenium import webdriver
      u'''打开百度首页,输入Selenium进行搜索'''
      driver = webdriver.Firefox()
      driver.get("http://www.baidu.com")
      assert(u"百度" in driver.title)
      driver.find_element_by_id("kw").send_keys("selenium")
      driver.find_element_by_id("su").click()
      assert(u"selenium_百度搜索" in driver.title)
      driver.close()
      driver.quit()

这段代码所要执行的测试场景依次如下。

(1)启动Firefox的WebDriver实例。

(2)浏览http://www.baidu.com网址。

(3)检查浏览器标题中是否包含“百度”字样。

(4)查找搜索输入框(id=kw的元素)并输入“selenium”字符串。

(5)查找搜索按钮(id=su的元素)并执行“单击”操作。

(6)检查浏览器标题中是否包含“selenium_百度搜索”字样。

(7)关闭浏览器窗口。

(8)关闭WebDriver实例。

1.6.2 调用Chrome浏览器

同样的测试场景再来测试下Chrome的调用行为。这里需要把原本启动Firefox的代码替换为启动Chrome的代码。替换的内容如下。

      driver = webdriver.Chrome()

另外新建一个chrome.py的文件,并输入完成的测试场景代码,具体如下。

      # -*- coding:utf-8 -*-
      from selenium import webdriver
      u'''打开百度首页,输入Selenium进行搜索'''
      driver = webdriver.Chrome()                     ##修改的内容
      driver.get("http://www.baidu.com")
      assert(u"百度" in driver.title)
      driver.find_element_by_id("kw").send_keys("selenium")
      driver.find_element_by_id("su").click()
      assert(u"selenium_百度搜索" in driver.title)
      driver.close()
      driver.quit()

完成代码输入之后,在文件空白处右击并选择Run “chrome”执行Python文件。观察实际的运行结果与脚本场景是否一致。

1.6.3 调用IE浏览器

最后试一下IE浏览器的调用行为。同样需要把启动浏览器的代码替换掉。这里需要替换为启动IE浏览器的代码。关键代码为:

      driver = webdriver.Ie()

另外新建一个ie.py文件并输入完整的测试场景代码,全部代码如下所示。

      # -*- coding:utf-8 -*-
      from selenium import webdriver
      u'''打开百度首页,输入Selenium进行搜索'''
      driver = webdriver.Ie()
      driver.get("http://www.baidu.com")
      assert(u"百度" in driver.title)
      driver.find_element_by_id("kw").send_keys("selenium")
      driver.find_element_by_id("su").click()
      assert(u"selenium_百度搜索" in driver.title)
      driver.close()
      driver.quit()

完成文件内容输入之后,在文件空白处右击并选择Run “ie”执行该Python文件。同样需要检查浏览器的行为与测试场景是否一致。

1.6.4 IE浏览器安全机制设置

需要注意的是由于IE的安全机制策略,可能会导致启动浏览器异常。这里需要对IE浏览器进行预设置,即关闭IE的“启用保护模式”。

具体设置方法为:打开IE浏览器→选择“设置”菜单→打开“Internet选项”对话框→切换到“安全”选项卡→依次单击Internet、“本地Intranet”“受信任的站点”“受限制的站点”→取消所有“启用保护模式”的选中状态→保存设置,如图1-26所示。

如果被测试页面中包含frame,并且子frame与父frame不是同源的情况下,使用Selenium操作子frame的时候,则需要进行“受信站点”设置。具体设置步骤如下。

(1)打开IE浏览器的“Internet选项”对话框并切换到“安全”选项卡。

(2)单击“受信任的站点”图标,如图1-27所示。

(3)单击“站点”按钮,并在弹出框中输入子frame的url域名,如图1-28所示。

(4)单击“添加”按钮并保存设置。

通常经过上述两项设置之后,IE浏览器都可以正常地被Selenium调用。如果设置之后启动IE浏览器仍有问题,则可能是WebDriver版本与当前IE浏览器的版本不一致。另外,在学习过程中如果有遇到其他问题,还可以到http://www.testqa.cn上的Selenium小组中进行提问。

图1-26 IE取消启用保护模式设置

图1-27 IE信任站点设置

图1-28 IE信任站点添加 Rrp3ji0L2G8I8D2K5nQ3Lz9H8OIr0sCRvGpWdalkRfIUeb52UGcWnDQF/mHAw13M

点击中间区域
呼出菜单
上一章
目录
下一章
×