1.什么是selenium?
selenium是一个常用的web测试框架或者爬虫框架,用了它之后,我们就不用点点点了,因为他有一系列的api提供我们使用,例如我们要点页面中的某一个按钮,那么我们只需要获取页面,然后根据id或者name找到对应的按钮,然后执行click操作就可以完成点击这一个动作。
2.为什么要用selenium?
点点点虽然容易复现,但做回归测试的时候会出现大量重复的工作,编写自动化测试之后,每次做回归测试我们只需要运行相关的脚本即可。
3.基本用法
基础架构图:
我们可以看到selenium由2部分组成,webdriver和client,webdriver负责接收client的请求,并且根据请求去做相关的操作,webdriver的版本是要求符合浏览器的版本,如果webdriver的版本和浏览器的版本不符合就没法操作,client就是我们写的逻辑操作。
样例1:(拉取糗事百科 前13页文章标题)
from selenium import webdriver
if __name__ == '__main__':
browser = webdriver.Chrome() # 声明浏览器
page = 2
while page <= 13:
url = 'https://www.qiushibaike.com/8hr/page/{0}/'.format(page)
browser.get(url) # 打开浏览器预设网址
text_list = browser.find_elements_by_class_name("recmd-content") # 打印网页源代码
for i in text_list:
print(i.text)
page+=1
browser.quit() # 关闭浏览器
样例2:(进入百度,在搜索框输入文字,并搜索)
from selenium import webdriver
import time
if __name__ == '__main__':
browser = webdriver.Chrome() # 声明浏览器
url = 'https://www.baidu.com/'
browser.get(url) # 打开浏览器预设网址
text = browser.find_element_by_name("wd")
text.send_keys("hello")
but = browser.find_element_by_id("su")
but.click()
time.sleep(2)
print(browser.page_source)
browser.quit() # 关闭浏览器
由上面2个例子我们可以得知,我们想用这个框架的前提,需要我们知道基本的前端知识,例如id,class,name等是个什么东西,然后我们再去分析页面,根据逻辑流程写出我们想要的代码。