1.环境搭建
1.1下载selenium:
pip install selenium #pip安装selenium库
1.2下载WebDriver:
Firefox | https://github.com/mozilla/geckodriver/releases |
Chrome | https://sites.google.com/a/chromium.org/chromedriver/downloads |
Edge | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
Safari | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
2.入门
1.1 简单介绍
from selenium import webdriver from selenium.webdriver.common.keys import Keys
#实例化webdriver driver = webdriver.Chrome()
#获取url driver.get("http://www.baidu.com") elem = driver.find_element_by_id("kw") elem.send_keys("Python") # elem = driver.find_element_by_id("su") # elem.click()
#回车 elem.send_keys(Keys.RETURN)
1.2 讲解
selenium.webdriver 提供了webdriver实现,支持chrome、firefox、edge等;keys类提供了按键键值,如:回车:RETURN
driver.get 方法会根据制定Url访问web页面,等待页面加载完成,对页面进行控制;注意:如果页面内存在大量的Ajax时,webdriver并不清楚页面是否已经加载完成;
webdriver 提供了大量的WebDriver为寻找页面元素提供了大量方法,他们都是find_element_by_*
的形式。举个例子,input text
元素可以根据他的id值使用find_element_by_id
来进行定位。
elem = driver.find_element_by_id("kw")
为了安全起见,最好先: elem.clear() 一下;确保输入框里为空;
1 elem.clear() 2 elem.send_keys("Python") 3 elem.send_keys(Keys.RETURN) #Keys.ENTER
之后,我们会得到一个搜索结果;
最后我们关闭当前标签;
elem.close() #当前标签 elem.quit() #关闭浏览器
1.3 编写测试脚本
因为暂时还没有了解unittest,所以只能写出这样的代码
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time class baiduComSearch(): "python.org Search test case" def setUp(self): "设置webdriver 这里设置了chrome" self.driver = webdriver.Chrome() def test_search_in_baiduCom(self): "执行百度搜索框测试" driver = self.driver driver.get("http://www.baidu.com") elem = driver.find_element_by_id("kw") elem.send_keys("Holle") elem.send_keys(Keys.RETURN) driver.close() # 关闭当前标签 print(time.clock()) if __name__ == '__main__': searchTest = baiduComSearch searchTest.setUp(searchTest) searchTest.test_search_in_baiduCom(searchTest)