前言 highlight方法是通过红框高亮显示元素,在调试中有很大优势,可以清楚看到定位的元素位置 入参介绍 def highlight(element):   """  入参:元素 :param element: The element to highlight.   Highlights the given element on the webpage by drawing a red rectangle   around it. This is useful for d…
使用js主函数的原因是等文档加载完了才给里面的元素添加东西 如果不使用主函数则文档加载时候无法找到元素则不能成功给元素添加事件…
前言 Helium 是一款 Web 端自动化开源框架,全称是:Selenium-Python-Helium,从名字上就可以看出,Helium 似乎和 Selenium 息息相关,基于Selenium的更轻量级的浏览器自动化. 确实,Helium 针对 Selenium 进行了封装,它屏蔽了 Selenium 很多实现细节,提供了更加简洁直观的 API,更方便我们进行 Web 端的自动化 官方表示,要实现同样的功能,Helium 相比 Selenium 要少 30% - 50% 的代码 目前,He…
曾几何时,当你码神附体,一路披荆斩棘的完成代码后,带着“一码在手,天下我有”的傲然环顾之时,却发现单元测试.API文档.Demo实例陆续向你砸来,顿时有木有一种冰水挑战后的感觉.而这时你应该:哟哟,快使用SmartDoc: SmartDoc, 一个基于NodeJS的自动化文档生成工具,她拥有明眸的双眼(yuidoc引擎),华丽的外衣(bootstrap 3风格),灵巧的双手(demo生成,codemirror代码编辑,jasmine接口兼容);拥有她,相信你一定会仰天长啸:"小伙伴们再也不用担心…
纯粹的CSS无法实现.因为position:absolute就是脱离文档流,怎么能让父元素不塌陷呢? 目前想到的只能用js和jquery来实现了,用js获取子元素的高度,赋值给父元素. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial…
前言 hover 实现功能是将鼠标光标悬停在给定的元素或点上 入参介绍 element def hover(element): """ :param element: The element or point to hover. :type element: str, unicode, :py:class:`HTMLElement`, \ :py:class:`selenium.webdriver.remote.webelement.WebElement` or :py:cl…
前言 前面说过helium是对Selenium 进行了封装,那么我们如何使用selenium的方法呢,通过下面的介绍,我们能够清楚在helium中能够使用selenium的任何方法 入参介绍 def get_driver(): """ Returns the Selenium WebDriver currently used by Helium to execute all commands. Each Helium command such as ``click("…
前言 Text关键字的作用是识别网页上的文字,在一般UI查找中使用率非常高,但是需要注意,如果网页上有相同的文字,那么只能识别到第一个 入参介绍 以下是Text的源码 有5个如参:后面4个参数是上下左右的定位辅助,后面举例中详细介绍 text=None, below=None, to_right_of=None, above=None, to_left_of=Noneclass Text(HTMLElement):    """    Lets you identify an…
前言 find_all关键字根据官方介绍的作用是查找所有出现GUI元素,并且返回list,下面通过举例说明 入参介绍 def find_all(predicate): """ Lets you find all occurrences of the given GUI element predicate. For instance, the following statement returns a list of all buttons with label "O…
前言 press方法是用来模拟键盘按键输入,可以组合使用,来模拟键盘输入,解决一些难定位的元素 入参介绍 以下是press源码中的函数介绍 def press(key):  :入参 :param key: Key or combination of keys to be pressed.   Presses the given key or key combination. To press a normal letter key such   as 'a' simply call `press…
前言 click点击方法在web UI自动化中使用频率非常高,此方法就是模拟鼠标左键单击动作 click入参说明 1.首先我们来分析一下click方法的代码 click(element):   """  :参数 元素:元素或坐标 :param element: The element or point to click.   :type element: str, unicode, :py:class:`HTMLElement`, \   :py:class:`seleniu…
学习思路: 查看github项目的源码,每个方法都有介绍及使用说明 https://github.com/mherrmann/selenium-python-helium/blob/master/helium/__init__.py __all__ = [   # Actions: 方法   'attach_file', 'click', 'doubleclick', 'drag', 'drag_file', 'find_all',   'get_driver', 'go_to', 'highl…
前言 helium库是自带chromedriver的,我们怎么来查看在哪里呢? 目录介绍 用我的电脑上的路径打比方如下: D:\Program Files (x86)\Python38\Lib\site-packages\helium\_impl\webdrivers 如下图:会有3个文件夹,每个文件夹下是对应操作系统的webdriver 调用逻辑 使用pycharm等IDE运行都会使用helium自带的webdriver 但是有一种特殊情况,就是helium的py文件打包成exe以后,实际调用…
前言 attach_file关键字根据官方介绍的作用是上传文件 入参介绍 def attach_file(file_path, to=None): """ :param file_path: The path of the file to be attached. :param to: The file input element to which the file should be attached. Allows attaching a file to a file i…
前言 wait_until等待某个条件为真才继续往下执行.默认的超时时间为10s,每0.5查询一次,这俩参数选填.可以设置超时时间和轮询间隔. 可以作为添加后校验元素是否存在的场景 入参介绍 def wait_until(condition_fn, timeout_secs=10, interval_secs=0.5): """ :param condition_fn: A function taking no arguments that represents the \…
前言 write方法是模拟在输入框中写入数据 write入参说明 def write(text, into=None):   """   :param text: The text to be written.   :type text: one of str, unicode   :param into: The element to write into.   :type into: one of str, unicode, :py:class:`HTMLElement`…
前言 go_to在当前的Web浏览器窗口中打开指定的URL 入参介绍 url def go_to(url): """ :param url: URL to open. :type url: str Opens the specified URL in the current web browser window. For instance:: go_to("google.com") """ _get_api_impl().go…
前言 S方法可以灵活定位元素特别注意,比如to_left_of参数的使用是查找在某个元素左侧的元素,但是默认只会找第一个S方法可以灵活运用,特别是没有id,没有name,只有classname的情况,可以多次使用方向的判断,比如:<li class="nav_com_li  "><a class="current" href="/nav/watchers" target="">动态</a>&…
一.现状 Vue框架在前端开发中应用广泛,当一个多人开发的Vue项目经过长期维护之后往往会沉淀出很多的公共组件,这个时候经常会出现一个人 开发了一个组件而其他维护者或新接手的人却不知道这个组件是做什么的.该怎么用,还必须得再去翻看源码,或者压根就没注意到这个组件 的存在导致重复开发.这个时候就非常需要维护对应的组件文档来保障不同开发者之间良好的协作关系了. 但是传统的手动维护文档又会带来新问题: 效率低,写文档是个费时费力的体力活,好不容易抽时间把组件开发完了回头还要写文档,想想都头大. 易出错…
目录 前言 安装-python-docx 一.自动编写<赤壁赋> 准备数据 新建文档 添加标题 添加作者 添加朝代 添加图片 添加段落 保存word文档 二.自动提取<赤壁赋>的文字 前言 苏东坡,千古奇才,大家都喜欢他.叔叔也非常喜欢他,毕竟东坡肉外酥里嫩,肥而不腻,堪称人间极品. 不过,比起苏东坡,叔叔更喜欢王维 大帅哥.迷倒大唐公主 专一.这样一个大帅哥,在妻子过世后没有再娶 有才华.写诗.绘画.音乐.书法各种会,妥妥的顶级文艺青年. 这样一个帅气专一有才的人,试问谁不喜欢呢…
1.Document与Element和TEXT是Node的子类. Document:树形的根部节点 Element:HTML元素的节点 TEXT:文本节点   >>HtmlElement与HtmlDocument a:HtmlElement对象表示HTML中的一个个元素. b:HtmlDocument对象表示 HTML 文档树的根.HTMLDocument 接口对 DOM Document 接口进行了扩展,定义 HTML 专用的属性和方法.   >>HTML的DOM对象 a:DOM…
1.1  创建HTML文件 本质上,HTML文件就是具有下列两个特征的简单文本文件: HTML文件的扩展名为.html或者.htm.文件扩展名是一个缩写,它可将文件正确地关联到需要访问它的程序或工具. HTML文件由标记(tag)组成.标记就是用于告诉计算机如何显示页面内容的命令或程序. 命名规范: 统一使用一种扩展名,以免使自己.浏览器或用户产生混淆. 一些Web服务器区分大小写,因此当命名或引用文件名时请注意,要保持文件名大小写统一. 使用只包含字母字母和数字的简单文件名.请不要使用除连字符…
1.1.1 摘要 现在,许多网站都提供在线图片和图书阅读的功能,这种方式比下载后阅读来的直观和人性化,要实现该功能涉及到点击处理和图片动态加载. 在接下来的博文中,我们将通过Javascript方式实现在线阅读这一功能. 1.1.2 正文 Index页面 首先,我们创建index.html页面,它包含三个div元素分别是content.controls和doccontainer,其中controls用来显示翻页控件(前/后翻),而doccontainer用于显示图片,具体定义如下: <!doct…
[理解下DOM] DOM——Document Object Mode.DOM是网页上XHTML中文档正文标题啊.段落.列表.样式.以及ID/class等所有其他数据的一个内部表示.我自己的理解是将网页内容变成代码的形式呈现. DOM的主要思想是HTML上每个元素分别对应于DOM中的一个节点. (最容易理解的方式是画树状结构图,这个电脑上不好操作的这里就不展示了.)这个树状结构图是怎么出来的呢?是将网页的XHTML结构通过浏览器解析,在内存中创建整个文档节点对象document,然后从文档中出现的…
所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列.并最终窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素.脱离文档流即是元素打乱了这个排列,或是从排版中拿走. 当前所知的脱离文档流的方式有两种:浮动和定位. a.定位属性positon 先看一下定位.看一段对定位各个字段的描述,有助于理解 值 描述 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top&q…
文档流 将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流. 每个非浮动块级元素都独占一行, 浮动元素则按规定浮在行的一端. 若当前行容不下, 则另起新行再浮动. 内联元素也不会独占一行. 几乎所有元素(包括块级,内联和列表元素)均可生成子行, 用于摆放子元素. 有三种情况将使得元素脱离文档流而存在,分别是浮动,绝对定位, 固定定位. 浮动元素不占任何正常文档流空间,而浮动元素的定位还是基于正常的文档流,然后从文档流中抽出并尽可能远的移动至左侧或者右侧.文字内容会围绕在浮…
在一个文档流中,盒子模型元素的位置会互相影响. 当一个BFC出现在文档流中时,BFC内部的盒子模型元素同BFC外部的元素之间的位置不会互相影响. 相当于BFC重新创建了一个文档流. 举例: 一个文档流中出现了一个float元素,float元素会影响后续出现的inline或者inline-block的元素显示位置,而float元素内部的元素显示,同外部元素没有任何关系.…
http://www.cnblogs.com/chenxizhang/archive/2009/07/12/1522058.html 如何:创建 JavaScript XML 文档注释 Visual Studio 2012 如何:创建 JavaScript XML 文档注释 XML 文档注释是 JavaScript 注释添加到脚本提供有关代码元素 (如函数. 字段和变量的信息. 在 Visual Studio,这些文本说明显示与 IntelliSense 时,引用的脚本函数. 本主题提供基本教程…
JavaScript DOM  文档解析 1.节点(node):来源于网络理论,代表网络中的一个连接点.网络是由节点构成的集合 <p title=“a gentle reminder”> Don’t forget to buy this stuff.</p> 节点及其类型 元素节点: 属性节点:元素的属性,可以直接通过属性的方式来操作 文本节点:元素节点的子节点,其内容通常为文本 2.Node接口的特性和方法 现在给出一个演示的HTML文件: html <!doctype h…
CSS文档流与块级元素(block).内联元素(inline),之前翻阅不少书籍,看过不少文章, 看到所多的是零碎的CSS布局基本知识,比较表面.看过O'Reilly的<CSS权威指南>,发现里面提到的文档流概念让我很敏感. 可恶的是书中并没有解释文档流是什么东西,或许作者觉得这个太简单了以至于不值一提.但我觉得,这个概念实在太重要了.理解了它,一堆css布局的理论都 变得易于理解,并且体会到CSS这套设计的合理性所在. 于是我根据猜测,再加实验,得出一下说法.如有错误,纯属正常. 文档流将窗…