selenium--判断元素是否存在
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC driver=webdriver.Firefox()
class Find_Element():
def __inti__(self,driver):
self.driver=driver
def is_exist(self,locator,timeout=30,frequency=0.5):
"""
locator 参数是定位方式,如("id", "kw"),把两个参数合并为一个
*号是把两个参数分开传值
使用方法:
locator = ("id", "kw")
driver.find_element(*locator)
:param locator:
:param timeout:
:param frequency:
:return:
"""
try:
element=WebDriverWait(driver,timeout,frequency).until(lambda driver:driver.find_element(*locator))
return element except:
return False def is_exist2(self,by,value,timeout=30,frequency=0.5):
"""
locator 参数是定位方式,如("id", "kw"),把两个参数合并为一个
*号是把两个参数分开传值
使用方法:
locator = ("id", "kw")
driver.find_element(*locator)
:param locator:
:param timeout:
:param frequency:
:return:
"""
try:
element=WebDriverWait(driver,timeout,frequency).until(lambda driver:driver.find_element(by,value))
return element except:
return False def is_text_in_element(self,locator,text,timeout=30,frequency=0.5):
"""
locator 参数是定位方式,如("id", "kw"),把两个参数合并为一个
*号是把两个参数分开传值
使用方法:
locator = ("id", "kw")
driver.find_element(*locator)
:param locator:
:param timeout:
:param frequency:
:return:
"""
try:
element=WebDriverWait(driver,timeout,frequency).until(EC.text_to_be_present_in_element(locator,text))
return True except:
return False def send_keys(self,text,locate):
self.driver.find_element(*locate).send_keys(text) if __name__=="__main__":
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
base_driver=Find_Element(driver) #实例化
input_loc=("id","kw")
base_driver.send_keys(input_loc,"致橡树的你")
driver.quit()
from selenium.webdriver.common.by import By
driver.find_element("id", "kw")
driver.find_element("xpath", "xxx")
driver.find_element("link text", "xxx")
driver.find_element("partial link text", "xxx")
driver.find_element("name", "xxx")
driver.find_element("tag name", "xxx")
driver.find_element("class name", "xxx")
driver.find_element("css selector", "xxx")
selenium--判断元素是否存在的更多相关文章
- python selenium判断元素是否存在的问题
爬虫的时候经常用到这个,找到了一个比较好用的方法 原文链接:http://blog.csdn.net/u012189659/article/details/36391837 背景:selenium+p ...
- 自动化测试基础篇--Selenium判断元素是够存在
摘自https://www.cnblogs.com/sanzangTst/p/8376101.html selenium+python处于学习阶段,功能实现之后开始整理之前写的代码,突然发现一个功能没 ...
- selenium判断元素类型
在做级联的下拉框时发现第一次选择了下拉框(如省份),第二个下拉框可能是输入框,也可能是下拉框,这个时候就需要判断他的元素类型,来做判断 图1 图2 原理很简单:获取控件的html文件内容,拿到内容后在 ...
- selenium常用的API(七)判断元素是否可见
web页面不可见的元素虽不在页面上显示,但是存在于DOM树中,这些元素webdriver也能找到. element.is_displayed()方法可以判断元素是否在页面上显示,如果显示返回True, ...
- 《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)
1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...
- 《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)
1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...
- Selenium判断获取的元素是否可见(display:none)
在爬虫中需要自动登陆并判断是否登陆成功,如果登陆错误的话还需要知道错误提示信息,此时需要判断提示信息是否可见 if self.element_exist_xpath('//*[@id="bu ...
- selenium处理元素定位到了点击无效问题
在WEB自动化测试过程中,经常会遇到这样的问题: 元素定位到了,但是点击无效?有人可能会问了,怎么判断元素定位到了,这个问题很好判断 1.给元素加高亮显示 self.driver.execute_sc ...
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍
这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...
- 【亲测显式等待】Selenium:元素等待的4种方法
Selenium:元素等待的4种方法 1.使用Thread.sleep(),这是最笨的方法,但有时候也能用到而且很实用. 2.隐式等待,隐性等待是指当要查找元素,而这个元素没有马上出现时,告诉We ...
随机推荐
- TopJUI Combobox 联动
这里给联动进行一个简单定义:因Combobox选择或输入的值发生改变时对自身或者其它组件产生影响称为联动.(注:editable确定是否可以手动输入) 有两种实现方法: 一.自己写对应的onChang ...
- Linux基础-5.利用vi编辑器创建和编辑正文文件
1.vi编辑器简介 1)掌握vi编辑器的定义:vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界面,vi是效率很高的文本编辑器.尽管在Linux上也有很多图形界面 ...
- Ubuntu下配置jdk和tomcat
一.配置jdk 更新系统 apt-get update 添加ppa add-apt-repository ppa:webupd8team/java 开始安装 apt-get install oracl ...
- 解决 SSH 不能输入中文的问题
有些应用的进程名称可能是中文,还有一些应用创建的目录可以也会是中文,在 SSH 上使用 debugserver 没有办法输入中文的进程名称,也没办法在 SSH 上操作中文的目录,网上试了一些方法,不过 ...
- cookie、localstorage、sessionstorage区别
localstorage sessionsorage cookie 大小 浏览器不能保存超过300个cookie,单个服务器不能超过20个,每个cookie不能超过4k 可以达到5M 可以达到5M ...
- Delphi XE7的Splash 功能
Delphi XE5,XE6,XE7编译的程序在Android下启动会有一段时间黑屏,以前需要用Java扩展Activity增加Splash显示, 现在Delphi XE7增加了Splash Imag ...
- 深入了解Linux(一)
Linux的各个文件夹 每次当我使用linux的时候我都被一个个文件夹整懵逼,那么多文件夹到底是怎么分类的呢.今天终于有时间好好整理一下 /boot: 引导文件存放目录,内核文件(vmlinuz),引 ...
- python教程(三)·自定义函数
前面介绍了如何使用函数,这一节我们就来学习怎么创建自己的函数! 自定义函数 创建函数非常简单,它使用关键字 "def",下面的代码创建了一个带有一个参数的函数,并使用不同的参数调用 ...
- PyQt5 signal and slot
PyQt5 的 signal 与 slot 有所改变,例如,先定义一个 ZeroSignal 类: class ZeroSignal(QObject): atzero = pyqtSignal(int ...
- (数据科学学习手札55)利用ggthemr来美化ggplot2图像
一.简介 R中的ggplot2是一个非常强大灵活的数据可视化包,熟悉其绘图规则后便可以自由地生成各种可视化图像,但其默认的色彩和样式在很多时候难免有些过于朴素,本文将要介绍的ggthemr包专门针对原 ...