element

Scrapy学习-16-动态网页技术

我只是一个虾纸丫 提交于 2020-05-06 03:29:13
Selenium浏览器自动化测试框架 简介   Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。   支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。   这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。   测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本 功能   框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。   使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。   使用简单,可使用Java,Python等多种语言编写用例脚本 安装 1 pip install selenium 官方文档 1 http://selenium-python.readthedocs.io/ 驱动下载 Chrome https://sites.google.com/a/chromium.org/chromedriver/

Python selenium 三种等待方法

a 夏天 提交于 2020-05-06 03:27:01
  1. 强制等待 sleep(xx) 是最简单粗暴的一种办法,不管你浏览器是否加载完了,程序都得等待3秒,3秒一到,继续执行下面的代码,作为调试很有用,不建议总用这种等待方式,严重影响程序执行速度。 代码:   1 from selenium import webdriver 2 from time import sleep 3 driver = webdriver.Chrome() 4 driver.get( ' https://www.baidu.com ' ) 5 sleep(3) # 强制等待3秒再执行下一步 6 driver.quit()   2. 隐性等待 implicitly_wait(xx), 隐形等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步。 注意这里有一个弊端,那就是程序会一直等待整个页面加载完成,也就是一般情况下你看到浏览器标签栏那个小圈不再转,才会执行下一步,但有时候页面想要的元素早就在加载完成了,但是因为个别js之类的东西特别慢,我仍得等到页面全部完成才能执行下一步,我想等我要的元素出来之后就下一步怎么办?有办法,这就要看selenium提供的另一种等待方式——显性等待wait。 代码: 1 from selenium import webdriver 2 driver =

Web自动化测试 五 ----- selenium的等待和切换

Deadly 提交于 2020-05-06 03:17:55
一、selenium的三种等待 当执行python的selenium代码时,如果需要定位一个元素或者点击一个元素,需要考虑到网速等多方面原因,导致页面加载速度慢,元素还未加载出来,这样就会导致找不到对应元素,从而报错的问题,所以要设置等待条件,等待元素加载出来后才执行相应的代码。 其中,selenium中有三种等待方式,下面一一进行介绍。 1、强制等待 最简单的一种方式,直接引入time模块,设置等待时间,但这种方式实用性不高,设置时间太短元素仍未找到,设置时间过长影响效率。 import time time.sleep(5)  2、显式等待 原理:指定一个等待条件,和一个最长等待时间,程序会判断在等待时间内条件是否满足,如果满足则返回,如果不满足会继续等待,超过时间就会抛出异常。 (简而言之, 就是直到元素出现才去操作 ,如果超时则报异常) from selenium.webdriver import Chrome from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC browser = Chrome()

修改element表格组件的样式

人走茶凉 提交于 2020-05-06 03:17:07
最近在开发一个项目,使用到了element中的表格组件,但是该组件的样式不是我们想要的样式,需要自己再调整,但是常常会遇到自己设置的样式无效,我使用的技术是Vue开发的 1. 页面使用了三栏布局,最右边的表格需要自适应,左边两栏都是固定宽度,因此我使用了 flex 布局, el-table 外层使用了一个 div ,样式都加载这个 div 中,这时遇到一个问题,那就表格无法自适应,因为表格我加了 stripe,border 属性,这些都是element自带的样式,会和 flex 布局有关系,这是我又加了 fit 列的宽度是否自撑开设个为 false ,这时没有问题,但是我目标效果就是自动撑开,显然不能这么处理,然后我尝试着把外层 div 去掉,把样式加在 el-table ,这个时候就可以达到我想要的效果。分析原因,element的表格是自动撑开时样式要加在表格身上。 2. 表格加了斑马线的属性,但是有些行我不要加斑马线,默认情况下斑马线样式优先显示,样式中可以使用 !important ,但是鼠标滑动效果又没有了,这个问题一直困恼着我好久,还没有好的解决办法 3. 表格居中问题,默认表格是中间对齐,如果内容要左对齐,就要自己把内容设置个宽度,要不然内容长度不同是无法对齐的。 来源: oschina 链接: https://my.oschina.net/u/4360351/blog

vue+element 表格formatter数据格式化并且插入html标签

a 夏天 提交于 2020-05-06 03:16:41
前言     vue中 element框架,其中表格组件,我既要行内数据格式化,又要插入html标签    一贯思维,二者不可兼得也 一、element 表格 数据格式化       demo <el-table-column :prop="item.key" v- for ="item in levelName" :label="item.name" :formatter='handleSign'> </el-table-column>    再写 handleSign () 方法 // 处理签到 handleSign(row,cellValue){ let signInId = '' if ( this .deviceSignList){ this .deviceSignList.map((item,index)=> { if (item.signInId == row.signInId){ signInId = "签到" } else { signInId = "未签到" } }) } return signInId },       目的:根据不能的值,相对应处理。一般状态会用的比较多,后台返回来的1,2,3,4 用户是不明白的    运行结果    二、element 表格内容自定义模板       demo <el-table- column label ="姓名"

隐式等待-----Selenium快速入门(九)

馋奶兔 提交于 2020-05-06 02:40:00
  有时候,网页未加载完成,或加载失败,但是我们后续的代码就已经开始查找页面上的元素了,这通常将导致查找元素失败。在本系列 Selenium窗口切换-----Selenium快速入门(六) 中,我们就已经出现过类似的问题,当一次访问的时候,发现页面不一定能成功加载iframe,需要再次刷新,iframe才可以成功加载。等待,就是要解决这类的问题,实际上,我们前面已经在不知不觉中使用了,就是使用java自身的Thread.Sleep()进行暂停等待。而Selenium对于元素等待则提供了隐式和显式两种等待方式。    查找元素隐式等待:就是调用driver.manage().timeouts(). implicitlyWait (long time, java.util.concurrent.TimeUnit unit)进行等待。   time:等待的时间长度   unit:等待的时间单位,例如秒   该方法的官方文档:http://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.Timeouts.html#implicitlyWait-long-java.util.concurrent.TimeUnit-   官方说明翻译:当一个元素不能马上呈现时,指定driver应该等待的时间

element中遇到的表格问题总结

非 Y 不嫁゛ 提交于 2020-05-06 02:31:16
1、列表表头的颜色自定义 <el-table :data="pageData" style="width: 100%;" height="500" border tooltip-effect="dark" :header-cell-style="getRowClass" :row-style= "tableRowStyle" > //设置第一行背景色 getRowClass({ row, column, rowIndex, columnIndex }) { if (rowIndex == 0) { return 'background:#f5f7fa' }else{ return '' } }, tableRowStyle({ row, rowIndex }){ return 'background-color: #F7F6Fd' } 2、表头中文字居中 header-align="center" <el-table-column prop="partName" label="部件名称" header-align="center" fixed> 3、表头中文字断行 <el-table-column prop="Length" :render-header="renderHeader" header-align="center" label="规格(长/深)*宽*(高/厚)"

#7 Python顺序、条件、循环语句

可紊 提交于 2020-05-06 01:29:02
前言 上一节讲解了Python的数据类型和运算,本节将继续深入,涉及Python的语句结构,相当于Python的语法,是以后编写程序的重要基础! 一、顺序语句 顺序语句很好理解,就是按程序的顺序逻辑编写程序即可,例如: 1 name = input( ' Please input your name: ' ) 2 3 print ( ' I am ' , name) Please input your name:MinuteSheep I am MinuteSheep 输出结果 上面代码展示了很标准的顺序语句,逻辑结构如下: 二、条件语句 每当你的程序需要做出选择,就要使用条件语句了,条件语句通过判断条件的真假来决定执行的 代码块 ,先来看条件语句的逻辑结构: 由上图可以看到,当条件为True是,执行语句1和语句2,当条件为False时,只执行语句2,这就是条件语句的迷人之处 代码块 细心的小伙伴可能已经发现上面的新名词:代码块。每一种编程语句都有其独特的代码块,在Python中,用缩进来控制代码块 1 name = input( ' Please input your name: ' ) 2 3 if name == ' MinuteSheep ' : 4 print ( ' Your are MS ' ) 5 print ( ' Your are the best man in

Java爬取51job保存到MySQL并进行分析

你。 提交于 2020-05-05 21:36:27
大二下实训课结业作业,想着就爬个工作信息,原本是要用python的,后面想想就用java试试看, java就自学了一个月左右,想要锻炼一下自己面向对象的思想等等的, 然后网上转了一圈,拉钩什么的是动态生成的网页,51job是静态网页,比较方便,就决定爬51job了。 参考https://blog.csdn.net/qq_42982169/article/details/83155040,改了许多地方,方便模块化,加了保存的功能 前提: 创建Maven Project 方便包管理 使用httpclient 3.1 以及 jsoup1.8.3 作为爬取网页和筛选信息的包, 这两个版本用的人多。 mysql-connect-java 8.0.13 用来将数据导入数据库,支持 mysql8.0+ 分析使用,tablesaw(可选,会用的就行) “大数据+上海”以此URL为例子,只要是类似的URL都可行 https://search.51job.com/list/020000,000000,0000,00,9,99,%25E5%25A4%25A7%25E6%2595%25B0%25E6%258D%25AE,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99

W3C、MDN及html常用标签介绍

坚强是说给别人听的谎言 提交于 2020-05-05 21:34:27
W3C   万维网(World Wide Web)是作为欧洲核子研究组织的一个项目发展起来的,在那里 Tim Berners-Lee 开发出万维网的雏形。Tim Berners-Lee- 万维网的发明人和万维网联盟的主任。      万维网联盟,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。建立者是万维网的发明者蒂姆·伯纳斯·李。      W3C 最重要的工作是发展 Web 规范,这些规范描述了 Web 的通信协议(比如 HTML 和 XHTML)和其他的构建模块。       每项 W3C 推荐的发展是通过由会员和受邀专家组成的工作组来完成的。工作组的经费来自公司和其他组织,并会创建一个工作草案,最后是一份提议推荐。一般来说,为了获得正式的批准,推荐都会被提交给 W3C 会员和主任。 MDN   Mozilla 开发者网络(MDN)提供有关开放网络技术(Open Web)的信息,包括 HTML、CSS 和万维网及 HTML5 应用的 API。它还记录了 Mozilla 产品的文档,例如 Firefox OS。   Mozilla开发者网络(MDN)是一个完整的学习平台,你可以在这里深入学习网络技术以及能够驱动网络的软件。 HTML所有标签列表 > [参考MDN web Dom](https://developer.mozilla.org/zh-CN