UI自动化之特殊处理四(获取元素属性\爬取页面源码\常用断言)
获取元素属性\爬取页面源码\常用断言,最终目的都是为了验证我们实际结果是否等于预期结果
目录
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
UI自动化之特殊处理四(获取元素属性\爬取页面源码\常用断言)的更多相关文章
- appium+python自动化:获取元素属性get_attribute
使用get_attribute()获取元素属性,括号里应该填写什么? 查看appium源码 如果是获取resource-id,填写resourceId self.driver.find_element ...
- JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)
JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性) 以下内容: 一.获取元素的属性 二.设置元素的属性 三.删除元素的属性 一.获取元素的属性 1-原生JS 获取属性 .ge ...
- JQ方法实用案例///鼠标移动到div和修改ipt中弹窗、CSS鼠标变小手、JQ获取元素属性、JQ选择器
今天学习了jQ,jQ对js的帮助很大,菜鸟教程上也有属性.可以查看 js 和 jquery主要的区别 在 dom 想用jquery 必须先引入(顺序问题) 先css 再js: ...
- delphi RTTI 四 获取类属性列表
delphi RTTI 四 获取类属性列表 GetPropList(btn1.ClassInfo, tkAny, PropList) PropCount := GetTypeData(btn1.Cla ...
- JS中获取元素属性的逆天大法
给大家聊下js中获取元素属性的逆天大法,胆小慎入,切记切记!!! innerHTML.outerHTML.innerText .outerText.value.text().html(),val() ...
- Selenium2+python自动化37-爬页面源码(page_source)
前言 有时候通过元素的属性的查找页面上的某个元素,可能不太好找,这时候可以从源码中爬出想要的信息.selenium的page_source方法可以获取到页面源码. selenium的page_sour ...
- Selenium2+python自动化37-爬页面源码(page_source)【转载】
前言 有时候通过元素的属性的查找页面上的某个元素,可能不太好找,这时候可以从源码中爬出想要的信息.selenium的page_source方法可以获取到页面源码. selenium的page_sour ...
- 2)JS动态生成HTML元素的爬取
2)JS动态生成HTML元素的爬取 import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.W ...
- Python3+Selenium3+webdriver学习笔记10(元素属性、页面源码)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记10(元素属性.页面源码)'''from selenium i ...
随机推荐
- git 中 HEAD detached from 802e836
head指针处于游离状态,需要建立一个分支然后将它合并到master分支,最后删除那个临时分支即可. 详情参见:https://www.jianshu.com/p/fdd3c2d020d7
- k3 cloud中员工离职以后释放站点
进入金蝶云企业平台:https://cloud.kingdee.com/qy,找到对应的用户并选择离职 给替代的员工加上专业应用组: 客户端也加上分组并且同步注册用户 管理中心更新用户许可:
- 理解PHP面向对象三大特性
一.封装性 目的:保护类里面的数据,让类更安全, protected和private只能在类中或子类访问,通过public提供有限的接口供外部访问,封装是控制访问,而不是拒绝访问 封装关键字:publ ...
- Python爬虫之selenium高级功能
Python爬虫之selenium高级功能 原文地址 表单操作 元素拖拽 页面切换 弹窗处理 表单操作 表单里面会有文本框.密码框.下拉框.登陆框等. 这些涉及与页面的交互,比如输入.删除.点击等. ...
- 使用pycharm编写自动化脚本
1.:导入本地Python环境 2:安装Selenium 3:下来需要根据安装的浏览器版本,下载合适的chromedriver驱动程序. 4:接着需要将下载的chromedriver进行解压,并将文件 ...
- Keepalived+Nginx+tomcat实现主备+负载
部署系统: Red Hat Enterprise Linux Server release 7.0 软件版本:apache-tomcat-7.0.92.tar.gzkeepalived-2.0.11. ...
- 正确理解MySQL中的where和having的区别
原文:https://blog.csdn.net/yexudengzhidao/article/details/54924471 以前在学校里学习过SQLserver数据库,发现学习的都是皮毛,今天以 ...
- 转 git 本地文件添加远程git
好的博客膜拜一下 https://www.liaoxuefeng.com/wiki/896043488029600/898732864121440 现在的情景是,你已经在本地创建了一个Git仓库后,又 ...
- ZROI CSP-S失恋测(1)
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "怎么大家一个暑假不见都变菜了啊."--蔡老板 A 考虑一个\(nk^2\)的dp,按\(w_i\)排序,则每个组 ...
- mysql CREATE DATABASE语句 语法
mysql CREATE DATABASE语句 语法 作用:创建数据库. 大理石构件 语法:CREATE DATABASE database_name mysql CREATE DATABASE语句 ...