獲取元素屬性\爬取頁面源碼\常用斷言,最終目的都是為了驗證我們實際結果是否等於預期結果
目錄
1、獲取元素屬性
2、爬取頁面源碼
3、常用斷言
1、獲取元素屬性
獲取title:driver.title()
獲取元素文本:driver.find_XX().text
獲取元素標簽:driver.find_XX().tag_name
獲取元素的其他屬性的值:driver.find_XX().get_attribute("class") 獲取class屬性的值
獲取文本框輸入的值:driver.find_XX().get_attribute("value") 獲取文本框輸入的值
獲取瀏覽器的名稱:driver.name
2、爬取頁面源碼
爬取頁面源碼(driver)
driver.page_source 返回頁面源碼
1、導入re模塊
2、"非貪婪匹配,re.S('.'匹配字符,包括換行符)"
3、findall 方法返回的是一個 list 集合
# coding:utf-8
from selenium import webdriver
import re
driver = webdriver.Firefox()
driver.get("http://xx.com/")
page = driver.page_source
url_list = re.findall('href=\"(.*?)\"', page, re.S)
url_all = []
for url in url_list:
if "http" in url:
url_all.append(url)
爬取頁面(requests) 導入soup來解析
用requests里的get方法打開博客首頁,r.content返回整個html內容,返回類型為string,用html.parser解析html
# coding:utf-8
from bs4 import BeautifulSoup
import requests
r = requests.get("http://www.cnblogs.com/yoyoketang/")
blog = r.content
soup = BeautifulSoup(blog, "html.parser")
times = soup.find_all(class_="xx")
for i in times:
print i.a.string # 獲取a標簽的文本
title = soup.find_all(class_="postTitle")
for i in title:
print i.a.string
3、常用斷言
assertEqual(self, first, second, msg=None)
--判斷兩個參數相等:first == second
assertNotEqual(self, first, second, msg=None)
--判斷兩個參數不相等:first != second
assertIn(self, member, container, msg=None)
--判斷是字符串是否包含:member in container
assertNotIn(self, member, container, msg=None)
--判斷是字符串是否不包含:member not in container
assertTrue(self, expr, msg=None)
--判斷是否為真:expr is True
assertFalse(self, expr, msg=None)
--判斷是否為假:expr is False
assertIsNone(self, obj, msg=None)
--判斷是否為 None:obj is None
assertIsNotNone(self, obj, msg=None)
--判斷是否不為 None:obj is not None