1.  
  1. # coding:utf-8
    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
  2.  
  3. 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
  4.  
  5. except:
    return False
  6.  
  7. 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
  8.  
  9. except:
    return False
  10.  
  11. def is_text_in_element(self,locator,texttimeout=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(locatortext))
    return True
  12.  
  13. except:
    return False
  14.  
  15. def send_keys(self,text,locate):
    self.driver.find_element(*locate).send_keys(text)
  16.  
  17. 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()
  1.  
  1. 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左侧菜单实例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 1005. Spell It Right(20)—PAT 甲级

    Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output e ...

  3. Java之数据类型

    Java数据类型分为基本数据类型和引用数据类型: 1.基本数据类型一共8种:byte,short,int, long,float,double,boolean和char; 具体可分为三类: ① 整数型 ...

  4. linux-2.6.22.6内核启动分析之Makefile文件

    学习目标 分析Makefile文件,了解内核中的哪些文件被编译,如何被编译,连接时顺序如何确定! Linux内核源码中包含很多的Makefile文件,这些Makefile文件又包含其它的一些文件,比如 ...

  5. docker使用(一)

    docker相对于虚拟技术: 更高效的利用系统资源 更快的启动速度 一致的运行环境 持续交付和部署 更加轻松的迁移 更加轻松的维护和扩展 什么是docker镜像,容器: 可以说他就是一个模型,用面向对 ...

  6. DVWA:环境搭建

    0x01 安装PHP集成环境 我这里用的是phpstudy 2016,这个使用起来比较方便.下面是现在的最新版. http://www.phpstudy.net/phpstudy/phpStudy20 ...

  7. C语言不定型参数函数定义

    我们在C语言中定义一个函数,通常都是需要在函数原型中规定这个函数需要提供什么类型的参数以及需要提供多少个.也就是,你的参数必须明确.但是我们调用函数库中的printf和scanf函数会发现,它们似乎是 ...

  8. C语言简易三子棋

    这是本人依据现学知识写的简易三子棋,也不是那么简洁明了,望大佬指点 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include&l ...

  9. 修改并编译golang源码

    最近为了做Hyperledger Fabric国密改造,涉及到了golang源码的改动.特将操作过程整理如下,以供参考: golang的源码安装其实比较简单,只需运行源码包中的脚本src/all.ba ...

  10. 防360TAB页面的样式页面

    今天给朋友做了一个仿照360新tab页面的效果,主要就是一些样式和JQUERY的应用,超级简单,现在把源码放出来 源码下载