element

Java操作XML牛逼利器JDOM&DOM4J

…衆ロ難τιáo~ 提交于 2020-04-26 09:53:35
JDOM JDOM 是一种使用 XML(标准通用标记语言下的一个子集) 的独特 Java 工具包,用于快速开发 XML 应用 程序。 JDOM 官方网站: http://www.jdom.org/ 利用JDOM生成xml: 1 package com.java1234.xml2; 2 3 import java.io.FileNotFoundException; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 7 import org.jdom2.Attribute; 8 import org.jdom2.Document; 9 import org.jdom2.Element; 10 import org.jdom2.output.XMLOutputter; 11 12 public class JDOM01 { 13 public static void main(String[] args) { 14 Element student= new Element("student" ); 15 Attribute id= new Attribute("id", "001" ); 16 Attribute aa= new Attribute("aa","xxx" ); 17 student

Selenium+Python:下载文件(Firefox 和 Chrome)

巧了我就是萌 提交于 2020-04-26 08:26:42
引自 https://blog.csdn.net/Momorrine/article/details/79794146 1. 环境 操作系统 Win10 IDE Eclipse (Oxygen 4.7)+ PyDev 5.9.2 (JDK1.8) Python 3.5 Selenium selenium-3.9.0-py2.py3-none-any.whl FirefoxDriver 0.20.0 Firefox浏览器 59.0.2(32位) ChromeDriver 2.34 Chrome浏览器 63.0.3239.84 2. Firefox 这是虫师书里面的一个例子,我直接copy下来了 from selenium import webdriver fp = webdriver.FirefoxProfile() fp.set_preference( "browser.download.folderList", 2) fp.set_preference( "browser.download.manager.showWhenStarting", False) # 不起作用 fp.set_preference( "browser.download.dir", os.getcwd()) fp.set_preference( "browser.helperApps.neverAsk

vue+element-ui中引入阿里播放器

人盡茶涼 提交于 2020-04-26 08:21:28
1.在public文件下的index.html文件中插入以下代码: < link rel ="stylesheet" href ="https://g.alicdn.com/de/prismplayer/2.8.2/skins/default/aliplayer-min.css" /> < script charset ="utf-8" type ="text/javascript" src ="https://g.alicdn.com/de/prismplayer/2.8.2/aliplayer-min.js" ></ script > 2.在你要调用播放器的vue文件中: this .ideovSource = this .ideovUrl + this .$route.query.fileId + "/output.m3u8" // 初始化播放器 this .player = new Aliplayer({ id: "J_prismPlayer", // 容器id source: this .ideovSource, // 视频地址 // cover: "http://cdn.img.mtedu.com/images/assignment/day_3.jpg", //播放器封面图 autoplay: false , // 是否自动播放 width: "100%", //

Python爬虫周记之案例篇——基金净值Selenium动态爬虫

余生长醉 提交于 2020-04-26 08:12:43
在成功完成基金净值爬虫的爬虫后,简单了解爬虫的一些原理以后,心中不免产生一点困惑—— 为什么我们不能直接通过Request获取网页的源代码,而是通过查找相关的js文件来爬取数据呢? 有时候我们在用requests抓取页面的时候,得到的结果可能和浏览器中看到的不一样:浏览器中可以看到正常显示的页面数据,但是使用requests得到的结果并没有。 这是因为requests获取的都是原始的HTML文档,而浏览器中的页面则是经过JavaScript处理数据后生成的结果,这些数据来源多种,可能是通过Ajax加载的,可能是包含在HTML文档中的,也可能是经过JavaScript和特定算法计算后生成的。而依照目前Web发展的趋势,网页的原始HTML文档不会包含任何数据,都是通过Ajax等方法统一加载后再呈现出来,这样在Web开发上可以做到前后端分离,而且降低服务器直接渲染页面带来的。通常,我们把这种网页称为动态渲染页面。 之前的基金净值数据爬虫就是通过直接向服务器获取数据接口,即找到包含数据的js文件,向服务器发送相关的请求,才获取文件。 那么,有没有什么办法可以直接获取网页的动态渲染数据呢?答案是有的。 我们还可以直接使用模拟浏览器运行的方式来实现动态网页的抓取,这样就可以做到在浏览器中看倒是什么样,抓取的源码就是什么样,即实现——可见即可爬。 Python提供了许多模拟浏览器运行的库,如

selenium+python 搭建自动化环境

纵饮孤独 提交于 2020-04-26 08:01:25
一、以搭建windows平台为例 准备工具如下: 1)下载Python 2)安装,配置环境变量 3)安装selenium,通过pip安装,命令如下: pip install selenium 方式二:直接下载selenium包,解压,然后执行python setup.py install 4)安装webdriver(以IE driver为例): 下载解压后,会有一个 iedriver.exe文件,需要将此文件放到IE浏览器的安装目录下。 二、环境搭建好了后,写个简单的自动化脚本验证一下(以12306购票为例:) 三、相关问题解决 1)定位弹出型元素方法:先用F12打开调试,选择要定位的元素--》console--》输入setTimeOut(funcation(){debugger;},5000)--》执行--》页面会停住--》然后再定位弹出框中的元素 2)对于随机产生的id元素进行定位: 往上看父节点找id,根据父节点id来定位子元素,具体如下: driver.find_element_by_css_selector(父元素id>li:first-child/nth-child(index)) 验证方式一:Ctrl+f 输入-》显示高亮 方式二:console $$("父元素id>li:first-child/nth-child(index) ") 3)对于没有id的

python selenium判断元素是否存在的问题

给你一囗甜甜゛ 提交于 2020-04-26 07:55:39
爬虫的时候经常用到这个,找到了一个比较好用的方法 原文链接:http://blog.csdn.net/u012189659/article/details/36391837 背景:selenium+python处于学习阶段,功能实现之后开始整理之前写的代码,突然发现一个功能没有做判断,比如,点击“请登录”,需要判断一下这个弹出框到底弹了没有,这样就需要判断某个元素是否存在,使用is_displayed函数只能用于该元素存在去判断此元素是否出现,而不能判断某个元素是否存在,所以就自己写了个方法 代码: from selenium import webdriver import unittest from selenium.webdriver.common.action_chains import ActionChains class test1(unittest.TestCase): def setUp(self): self.driver=webdriver.Firefox() self.baseurl="http://www.xebest.com" # self.driver.maximize_window() def dengLu(self): browser=self.driver browser.get(self.baseurl) browser.find_element

【java+selenium3】自动化基础小结+selenium原理揭秘 (十七)

时光毁灭记忆、已成空白 提交于 2020-04-26 07:17:51
一、自动化实现原理   1.创建驱动对象   (1) 首先加载浏览器安装目录下的exe文件 (2) 其次是加载可执行驱动的exe文件,监听等待客户端发送的web service请求. 底层原理如下:    1.在自动化测试过程中,存在三部分组件:客户端脚本+驱动+ 浏览器终端。    2.驱动文件,以geckodriver.exe为例,这个可执行的驱动文件启动后,相当于一个暴露了一系列接口的服务器,监听某一端口,例如:89890 。    3.客户端的操作(访问页面,定位元素,输入数据,点击按钮等)都是封装成了接口请求(eg:/session/xx/ yy),然后提交到驱动服务器。    4 .驱动服务器接收到客户端的请求后,再跟终端浏览器交互。    5.终端浏览器做出相应操作。 二、driver调用方法小结 三、Selenium 1.0 的工作原理    Selenium 1.0,又称Selenium RC ,RC是Remote Control的缩写。 Selenium RC利用的 原理:JavaScript代码可以方便的获取页面上的任意元素并执行各种操作。   但是因为“同源政策(Same-origin policy)”(只有来自相同域名、端口和协议的javaScript代码才能被浏览器执行),所以,要想在测试用例运行中的浏览器中,注入javascript代码

自动化测试学习笔记之第一个代码

荒凉一梦 提交于 2020-04-26 07:06:15
实现第一个自动化代码,控制浏览器打开网址,输入信息并点击按钮。 ①导入selenium相关模块 ②调用selenium的浏览器驱动 ③通过驱动访问网址URL ④通过驱动操作页面元素 ⑤通过驱动关闭浏览器 首先上一段完整的代码 from seleniumim port webdriver driver = webdriver.Firefox() driver.get(" http://www.baidu.com ") driver.find_element_by_id("kw").send_keys("Selenium2") driver.find_element_by_id("su").click() driver.quit() 具体说明如下: 导入selenium的webdriver包 from selenium import webdriver 把webdriver的Firefox对象赋值给变量driver,获取了了driver对象,就可以打开浏览器进行接下来的操作 driver = webdriver.Firefox() 通过get()方法,可以向浏览器访问URL driver.get(" http://www.baidu.com ") 通过driver对象找到页面元素的几种find_element方法 driver.find_element_by_id() #查找页面的id

selenium篇之滑动验证码

纵然是瞬间 提交于 2020-04-26 07:05:08
一、介绍 现在出现了一种通过用户鼠标移动滑块来填补有缺口图片的验证码,我们叫做滑动验证码。它的原理很简单,首先生成一张图片,然后随机挖去一块,在页面展示被挖去部分的图片,再通过js获取用户滑动距离,以及坐标等信息到后台进行校验。只要用户移动的距离符合,以及移动的轨迹行为检测通过即可视为验证通过。 解决思路 目前这种验证码的通用解决思路如下: 获取验证码图片,包含原图以及有缺口的图 算出缺口的位置,以及滑块要滑动的距离 通过算法模拟人工移动轨迹 通过selenium模拟操作 二、逻辑实现 我们以保温网为例 http://www.cnbaowen.net/api/geetest/ 1.获取验证码图片 注意我们需要获取两张图片,第一张是完整背景图,第二张是有缺口的背景图。 经过分析发现当鼠标位于按钮是上时显示完整背景图,当鼠标点击滑动按钮不松,显示有缺口的背景图。 根据之前学习的爬虫知识,图片一定是浏览器下载回来的,通过查看历史请求确实发现了图片 但是图片有点奇怪,仔细查看发现图片是被分块并有意随机拼接的。根据以页面的css可以利用背景将图片拼接出来。我们当然可以依葫芦画瓢的利用PIL进行图片拼接,但是太麻烦了。 selenium有个方法可以对元素进行截图,先找到图片所在的html元素,然后利用selenium分别进行截图即可获取图片。代码如下: def get_full_image

Selenium2+python自动化-文件上传

旧街凉风 提交于 2020-04-26 07:03:53
前言   文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单。   一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决;另外一种非input标签实现起来比较困难,可以借助autoit工具或者SendKeys第三方库。   本篇以百度的上传图片为案例,通过send_keys()方法解决文件上传问题。 一、识别上传按钮 1.点开百度的图片上传按钮,显示”本地上传图片”。 2.用firebug查看按钮属性,这种上传图片按钮有个很明显的标识,它是一个input标签,并且type属性的值为file。 3.只要找到这两个标识,我们就可以直接用send_keys()方法上传文件了。 二、定位元素   1.用firebug查看按钮属性,发现有class属性;   2.确定class唯一,所以直接用class语法定位; from selenium import webdriver driver = webdriver.Firefox() # 启动浏览器 driver.get( " https://www.baidu.com/ " ) # 请求地址 driver.find_element_by_class_name( " soutu-btn " ).click() # 点击照相机按钮 ''' 先定位上传图片按钮,直接send