selenium python presence_of_element_located vs visibility_of_element_located
背景: 用WebDriverWait时,一开始用的是presence_of_element_located,我对它的想法就是他就是用来等待元素出现。结果屡屡出问题。元素默认是隐藏的,导致等待过早的就结束了。
解决:去StackOverFlow查了一下,发现我应该用visibility_of_element_located。
原文:
Well, I would guess that presenceOfElementLocated will be slighty faster because it's just check elements presence on the page while the visibilityOfElementLocated has to check the presenceand whether is element visible.
But I think it really doesn't matter from the performance perspective (what's the point if you save 0.001 second during this checking?), you better choose appropriate method depending on your use case.
- use 
presenceOfElementLocatedwhen you don't care whether if element visible or not, you just need to know if it's on the page - use 
visibilityOfElementLocatedwhen you need to find element which should be also visible 
Look at the documentation for more info.
翻译:
我猜 presence_of_element_located 肯定会稍微快一点,因为它仅仅检查了页面是否存在该元素,而visibility_of_element_located还必须检查元素是否存在以及元素是否可见。
但是我认为从性能角度考虑,确实没啥影响。最好根据使用情况来选择正确的方法。
- presence_of_element_located: 当我们不关心元素是否可见,只关心元素是否存在在页面中。
 - visibility_of_element_located: 当我们需要找到元素,并且该元素也可见。
 
selenium python presence_of_element_located vs visibility_of_element_located的更多相关文章
- <译>Selenium Python Bindings 5 - Waits
		
如今,大多数的Web应用程序使用AJAX技术.当页面加载到浏览器,页面中的元素也许在不同的时间间隔内加载.这使得元素很难定位,如果在DOM中的元素没有呈现,它将抛出ElementNotVisibleE ...
 - [译]Selenium Python文档:五、Waits等待
		
大多数现代web应用都使用了AJAX技术.当浏览器加载一个页面的时候,该页面内的元素可能在不用的时间间隔内进行加载.这使得元素定位变得比较困难:如果一个元素还没有出现在DOM中,定位函数将会抛出一个E ...
 - selenium+python : Waits---study
		
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.s ...
 - <译>Selenium Python Bindings 6 - WebDriver API
		
本章涉及Selenium WebDriver的所有接口. Recommended Import Style 推荐的导入风格如下: from selenium import webdriver 然后,你 ...
 - presence_of_element_located对比visibility_of_element_located
		
presence_of_element_located和visibility_of_element_located都是selenium里判断元素展示的方法,相信做ui自动化的小伙伴一定被这俩困扰过,本 ...
 - selenium + python自动化测试环境搭建
		
selenium的在python平台的搭建: 搭建平台windows 准备工具如下: --------------------------------------------------------- ...
 - Page Object Model (Selenium, Python)
		
时间 2015-06-15 00:11:56 Qxf2 blog 原文 http://qxf2.com/blog/page-object-model-selenium-python/ 主题 Sel ...
 - selenium + python 多浏览器测试
		
selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,hel ...
 - selenium + python 自动化测试环境搭建
		
selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...
 
随机推荐
- oracle 里面定时执行任务,比如存储过程内容等。
			
DECLARE job_no_ NUMBER; BEGIN DBMS_JOB.SUBMIT(job_no_, 'proc_qszx_dw_sc(' ...
 - 数据库导出excel表数据
			
- 执行之前 (错误) 消息 错误 0xc0202009: 数据流任务 1: SSIS 错误代码 DTS_E_OLEDBERROR.出现 OLE DB 错误.错误代码: 0x80040E37. (S ...
 - iOS单例的两种实现
			
单例模式算是开发中比较常见的一种模式了.在iOS中,单例有两种实现方式(至少我目前只发现两种).根据线程安全的实现来区分,一种是使用@synchronized,另一种是使用GCD的dispatch_o ...
 - Spring_DI利用set方法赋值Demo
			
Person.java public class Person { private Long pid; private String pname; private Student student; p ...
 - system.getProperties()
			
Properties props=System.getProperties(); //系统属性 System.out.println("Java的运行环境版本:"+prop ...
 - Cocos2dx开发(2)——Win8.1下Cocod2dx 3.2环境搭建
			
正式开始搭建cocos2dx环境,回到熟悉的VS 1.Python安装配置 这一步很简单,下载Python2.7.3,笔者直接用软件助手直接下载安装,最后配置环境变量 如下成功 2.cocos2dx ...
 - 用Python高亮org-mode代码块
			
文章同时可在我的github blog上阅读:http://cheukyin.github.io/python/2014-08/pygments-highlight-src-export-html.h ...
 - Unity3d脚本的生命周期
			
接下来,做出一下讲解:最先执行的方法是Awake,这是生命周期的开始,用于进行激活时的初始化代码,一般可以在这个地方将当前脚本禁用:this.enable=false,如果这样做了,则会直接跳转到On ...
 - angularJS中如何写自定义指令
			
指令定义 对于指令,可以把它简单的理解成在特定DOM元素上运行的函数,指令可以扩展这个元素的功能 例如,ng-click可以让一个元素能够监听click事件,并在接收到事件的时候执行angularJS ...
 - tomcat架构分析-索引
			
出处:http://gearever.iteye.com tomcat架构分析 (概览) tomcat架构分析 (容器类) tomcat架构分析 (valve机制) tomcat架构分析 (valve ...