''' #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()