由于在实际的测试过程中,我们的自动化程序不仅仅要在firefox上运行,还需要在其他主流浏览器上运行以测试兼容性,所以本篇介绍如何启动其他浏览器进行测试,如下介绍如何在Ie和Chrome上运行;
1.在IE浏览器上运行测试脚本,首先需要下载IEDriverServer.exe,放在IE浏览器的安装目录且同级目录下,示例如下:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException,\
NoAlertPresentException
import unittest, time
class Baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Ie("C:\Program Files\Internet Explorer\IEDriverServer.exe")
self.driver.implicitly_wait(30)
self.base_url = "http://www.baidu.com/?tn=98012088_4_dg&ch=3"
self.verificationErrors = []
self.accept_next_alert = True
self.driver.get(self.base_url)
def test_baidu_search(self):
'''百度搜索'''
driver = self.driver
try:
driver.find_element_by_id("kw").send_keys("selenium webdriver")
driver.find_element_by_id("su").click()
except:
driver.get_screenshot_as_file('D:\\workspace\\python_prictise\\src\\error.png')
time.sleep(2)
def test_baidu_set(self):
'''百度新闻'''
driver = self.driver
driver.find_element_by_name("tj_trnews").click()
time.sleep(2)
self.assertEqual(driver.title,u'百度新闻搜索——全球最大的中文新闻平台',"switch to baidu news faile!")
def is_element_present(self, how, what):
try: self.driver.find_element(by=how, value=what)
except NoSuchElementException: return False
return True
def is_alert_present(self):
try: self.driver.switch_to_alert()
except NoAlertPresentException: return False
return True
def close_alert_and_get_its_text(self):
try:
alert = self.driver.switch_to_alert()
alert_text = alert.text
if self.accept_next_alert:
alert.accept()
else:
alert.dismiss()
return alert_text
finally: self.accept_next_alert = True
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
测试报告',description=u'用例执行情况:')
unittest.main()
执行结果如下:
..
----------------------------------------------------------------------
Ran 2 tests in 23.570s
OK
2.在Chrome浏览器上运行测试脚本,首先需要下载IEDriverServer.exe,放在IE浏览器的安装目录且同级目录下,示例如下:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException,\
NoAlertPresentException
import unittest, time
class Baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Ie("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
self.driver.implicitly_wait(30)
self.base_url = "http://www.baidu.com/?tn=98012088_4_dg&ch=3"
self.verificationErrors = []
self.accept_next_alert = True
self.driver.get(self.base_url)
def test_baidu_search(self):
'''百度搜索'''
driver = self.driver
try:
driver.find_element_by_id("kw").send_keys("selenium webdriver")
driver.find_element_by_id("su").click()
except:
driver.get_screenshot_as_file('D:\\workspace\\python_prictise\\src\\error.png')
time.sleep(2)
def test_baidu_set(self):
'''百度新闻'''
driver = self.driver
driver.find_element_by_name("tj_trnews").click()
time.sleep(2)
self.assertEqual(driver.title,u'百度新闻搜索——全球最大的中文新闻平台',"switch to baidu news faile!")
def is_element_present(self, how, what):
try: self.driver.find_element(by=how, value=what)
except NoSuchElementException: return False
return True
def is_alert_present(self):
try: self.driver.switch_to_alert()
except NoAlertPresentException: return False
return True
def close_alert_and_get_its_text(self):
try:
alert = self.driver.switch_to_alert()
alert_text = alert.text
if self.accept_next_alert:
alert.accept()
else:
alert.dismiss()
return alert_text
finally: self.accept_next_alert = True
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
测试报告',description=u'用例执行情况:')
unittest.main()
执行结果:
..
----------------------------------------------------------------------
Ran 2 tests in 23.570s
OK