# 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--判断元素是否存在的更多相关文章

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

    爬虫的时候经常用到这个,找到了一个比较好用的方法 原文链接:http://blog.csdn.net/u012189659/article/details/36391837 背景:selenium+p ...

  2. 自动化测试基础篇--Selenium判断元素是够存在

    摘自https://www.cnblogs.com/sanzangTst/p/8376101.html selenium+python处于学习阶段,功能实现之后开始整理之前写的代码,突然发现一个功能没 ...

  3. selenium判断元素类型

    在做级联的下拉框时发现第一次选择了下拉框(如省份),第二个下拉框可能是输入框,也可能是下拉框,这个时候就需要判断他的元素类型,来做判断 图1 图2 原理很简单:获取控件的html文件内容,拿到内容后在 ...

  4. selenium常用的API(七)判断元素是否可见

    web页面不可见的元素虽不在页面上显示,但是存在于DOM树中,这些元素webdriver也能找到. element.is_displayed()方法可以判断元素是否在页面上显示,如果显示返回True, ...

  5. 《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)

    1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...

  6. 《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)

    1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...

  7. Selenium判断获取的元素是否可见(display:none)

    在爬虫中需要自动登陆并判断是否登陆成功,如果登陆错误的话还需要知道错误提示信息,此时需要判断提示信息是否可见 if self.element_exist_xpath('//*[@id="bu ...

  8. selenium处理元素定位到了点击无效问题

    在WEB自动化测试过程中,经常会遇到这样的问题: 元素定位到了,但是点击无效?有人可能会问了,怎么判断元素定位到了,这个问题很好判断 1.给元素加高亮显示 self.driver.execute_sc ...

  9. [python爬虫] Selenium常见元素定位方法和操作的学习介绍

    这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...

  10. 【亲测显式等待】Selenium:元素等待的4种方法

    Selenium:元素等待的4种方法 1.使用Thread.sleep(),这是最笨的方法,但有时候也能用到而且很实用.   2.隐式等待,隐性等待是指当要查找元素,而这个元素没有马上出现时,告诉We ...

随机推荐

  1. jquery toggleclass方法

    给元素更改样式,一般使用 addClass() 和removeClass() jquery官方文档 对 addClass的介绍: Adds the specified class(es) to eac ...

  2. docker启动mysql

    docker启动mysql docker run -p 3306:3306 -v /dockermysqlcfg/config/my.cnf:/etc/mysql/my.cnf -v /dockerm ...

  3. jquery里操作json相关的方法和实例

    $.getJSON("/html/aijquery/JSON.js",function(d){     $.each(d,function(i,v){             $( ...

  4. CSDN强制登录的解决办法

    这个网站的吃相越来越恶心,最近使用发现他竟然强制登录了,这样的网站我是不可能登录的,要一大堆身份信息,但是,某些时候有需要看一些别人的文章怎么办呢, ​ 似乎节操与便利必须选一个,还好CSDN这样的网 ...

  5. 一位老手关于HTML5的见解

    HTML5新特性总结  HTML5属于上一代HTML的新迭代语言,设计HTML5最主要的目的是为了在移动设备上支持多媒体!!!例如: video 标签和 audio 及 canvas 标记   HTM ...

  6. 随记181120Service Fabric问题

    https://github.com/Azure/service-fabric-issues/issues/1056 不能启动node one /five 问题

  7. JVM,JMM,虚拟机栈,本地方法栈

    JVM 虚拟机栈 本地方法栈:本地方法(使用native关键词修饰的方法,是由JVM底层用C,C++实现的),运行这部份代码使用的栈就是本地方法栈

  8. Linux下更新git版本

    查看git版本,卸载旧版本(如果没有安装git请直接到下一步) git --version yum remove git 安装依赖软件 yum install curl-devel expat-dev ...

  9. 了解MapReduce_2

    再写MapReduce执行流程之前,首先先对MapReduce有一些了解: 1. 简介 MapReduce是一个计算框架,既然是做计算的框架,那么表现的形式上就有输入,操作输入,得到结果2.主从结构 ...

  10. MongoDB成为最受开发人员期待的数据库系统

    本文翻译之MongoDB官方博客,原文地址:https://www.mongodb.com/blog/post/stack-overflow-research-developers-mongodb-m ...