selenium+Python自带的模块unittest

'''
#selenium.webdriver 提供了所有WebDriver的实现, 当前支持的WebDriver有: Firefox, Chrome, IE and Remote
#`Keys`类提供键盘按键的支持,比如:RETURN, F1, ALT等
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

#创建一个谷歌实例
driver = webdriver.Chrome()
# driver = webdriver.Firefox()  火狐

#driver.get方法将打开URL中填写的地址,WebDriver 将等待, 直到页面完全加载完毕(其实是等到”onload” 方法执行完毕),然后返回继续执行你的脚本。
# 值得注意的是,如果你的页面使用了大量的Ajax加载, WebDriver可能不知道什么时候页面已经完全加载:
driver.get("http://www.python.org")
# 用assert的方式确认标题是否包含“Python”一词。 (assert 语句将会在之后的语句返回false后抛出异常   assert语句用于代码检测并报警  )
assert "Python" in driver.title

#WebDriver 提供了大量的方法去查询页面中的元素,这些方法形如: find_element_by_* .
#例如:包含 name 属性的input输入框可以通过 find_element_by_name 方法查找到
#elem_name = driver.find_element_by_name('q')
elem_id = driver.find_element_by_id('id-search-field')

#特殊的按键可以使用Keys类来输入,该类继承自 selenium.webdriver.common.keys
#先清除input输入框中的任何预填充的文本(例如:”Search”),从而避免搜索结果受影响
elem_id.clear()
elem_id.send_keys("pycon")
elem_id.send_keys(Keys.RETURN)

#提交页面后,你会得到所有的结果。为了确保某些特定的结果被找到,使用`assert`如下:
assert "No results found." not in driver.page_source
#finally 关闭浏览器窗口   还可以使用quit方法代替close方法, quit将关闭整个浏览器,而_close——只会关闭一个标签页,
# 如果你只打开了一个标签页,大多数浏览器的默认行为是关闭浏览器:
driver.close()

'''
#测试用例   用Python自带的模块unittest
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class PythonOrgSearch(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()

    def test_search_in_python_org(self):
        driver = self.driver
        driver.get("http://www.python.org")
        self.assertIn("Python", driver.title)
        elem = driver.find_element_by_name("q")
        elem.send_keys("pycon")
        elem.send_keys(Keys.RETURN)
        assert "No results found." not in driver.page_source


    def tearDown(self):
        self.driver.close()

if __name__ == "__main__":
    unittest.main()

 

你可能感兴趣的:(selenium,python,自动化测试)