selenium判断元素是否存在的两种方法小结

在selenium中没有对应的方法,需要自己去写。

  • 元素存在,但不唯一,操作元素会报错
  • 元素不存在,操作元素也会报错

第一种:捕获异常

弊端:只要页面上有元素,不几个,都返回True

from selenium import webdriver
import unittest
class Test1(unittest.TestCase):
# 一、准备浏览器驱动、网站地址
# setUp在每个测试函数运行前运行,注意大小写;self不能省略
 def setUp(self):
 self.driver=webdriver.Chrome()
 self.baseurl="https://www.baidu.com"

# 二、打开浏览器,发送请求
 函数名必须以test开头
 def test_01(self):
 browser=self.driver
 browser.get(self.baseurl)
# 四、调用方法,判断元素是否存在
 flag=Test1.isElementExist(self,“input”)
 if flag:
  print(“该元素存在”)
 else:
  print(“该元素不存在”)
# 三、判断元素是否存在的方法
 def isElementExist(self):
 flag=True
 browser=self.driver
 try:
  browser.find_element_by_css_selector(element)
  return flag
 except:
  flag=False
  return flag
# 五、运行所有以test开头的测试方法
if __name__=="__main__":
 unittest.main()

第二种:find_elements方法

#除第三步,其他步骤同上
def isElementExist(self):
 flag=True
 browser=self.driver
 ele=browser.find_elements_by_css_selector(element)
 if len(ele)==0:
 flag=False
 return flag
 if len(ele)==1:
 return flag
 else:
 flag=False
 return flag 

到此这篇关于selenium判断元素是否存在的两种方法小结的文章就介绍到这了,更多相关selenium判断元存在 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java selenium处理Iframe中的元素示例

    java selenium  处理Iframe 中的元素 有时候我们定位元素的时候,发现怎么都定位不了. 这时候你需要查一查你要定位的元素是否在iframe里面 阅读目录 什么是iframe iframe 就是HTML 中,用于网页嵌套网页的. 一个网页可以嵌套到另一个网页中,可以嵌套很多层. selenium 中提供了进入iframe 的方法 // 进入 id 叫frameA 的 iframe dr.switchTo().frame("frameA"); // 回到主窗口 dr.sw

  • Python selenium根据class定位页面元素的方法

    在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的.但是实际工作中,很多前端开发人员并未给每个元素都编写id属性.通常一段html代码如下: <div class="sui-tips s-isindex-wrap sui-tips-exceedtipnews" style="display: none; width: auto;"> <div class="sui-tips-arrow" s

  • 基于selenium 获取新页面元素失败的解决方法

    当我们使用selenium 实现模拟登陆时,获取到登陆按钮元素后,直接调用它的click()方法就能实现登陆跳转,并且此时的webDriver 也是指向 当前页面,这个是没问题的,不过需要注意的是因为页面加载速度一般小于程序运行速度,所以在获取登陆后页面的元素之前,可以用WebDriverWait的util方法解决,也可以直接通过Thread.sleep()让程序睡眠一会(不推荐). 但是博主要说的重点是如果我们是通过点击普通超链接进入到新页面,那么通过上面的方法是获取不到新页面元素的,因为此时

  • python selenium 查找隐藏元素 自动播放视频功能

    在使用python做爬虫的过程中,有些页面的的部分数据是通过js异步加载的,js调用接口的请求中有时还带有些加密的参数很难破解无法使用requests这样的包直接爬取数据,因此需要借助seleniu来完成js的自动加载. 通过selenium 模拟浏览器的真是操作来获取页面中的所有请求,并且可以查找到一下页面上一些隐藏的元素,这些元素在html源码中无法看到,并且和能通过xpath和正则来捕获,因此需要使用selenium来查找隐藏元素,例如视频网站的播放按钮 代码如下 import time

  • selenium处理元素定位点击无效问题

    在WEB自动化测试过程中,经常会遇到这样的问题: 元素定位到了,但是点击无效?有人可能会问了,怎么判断元素定位到了,这个问题很好判断 1.给元素加高亮显示 self.driver.execute_script( "arguments[0].setAttribute('style', arguments[1]);", element, "border: 2px solid red;" #边框border:2px; red红色 ) arguments[0] 这个参数,可

  • java selenium元素定位大全

    页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法.  测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 阅读目录 自动化测试步骤 定位方法大全 如何定位 通过ID查找元素: By.id() 通过Name查找元素:By.name() 通过TagName查找元素: By.tagName() 通过ClassName 查找元素 By.className 通过LinkText查找元素 By.linkText(); 通过PartialL

  • Python2 Selenium元素定位的实现(8种)

    当我们想让 Selenium 自动地操作浏览器时,就必须告诉 Selenium 如何去定位某个元素或一组元素,每个元素都有着不同的标签名和属性值,Selenium 提供了以下8种定位元素的方式,每种方式对应了2个方法: find_element_by_( ),是用来定位单个元素的,find_elements_by_( ),是用来定位多个元素的. 通过 id 定位 通过 name 定位 通过 class 定位 通过 tag 定位 通过 link 定位 通过 partial link 定位 通过 x

  • selenium+python自动化测试之页面元素定位

    上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器页面中的元素进行操作,操作页面元素,首先要找到操作的元素,对元素进行定位 查看页面源码 要定位页面元素,需要找到页面的源码,IE浏览器中,打开页面后,在页面上点击鼠标右键,会有"查看源代码"的选项,点击后就会进入页面源码页面,在这里就可以找到页面的所有元素 使用Chrome浏览器打开页面后,在浏览器的地

  • Selenium定位元素操作示例

    本文实例讲述了Selenium定位元素操作.分享给大家供大家参考,具体如下: Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等.这个工具的主要功能包括:测试与浏览器的兼容性--测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上.测试系统功能--创建回归测试检验软件功能和用户需

  • selenium高效应对Web页面元素刷新的实例讲解

    当我们在页面上进行selenium.type()或者selenium.click()操作的时候,往往需要需要等待一个元素的出现,对于一般的网页,当我们进入一个新页面的时候,往往会使用selenium.waitForPageToLoad(WAITTIME); 对弹出窗口中的元素,往往写死要等待多少秒,其实可以使用如下更加通用高效的方法,自己写一个waitForElement()的方法: Java代码 protected void waitForElement(String target) { fo

随机推荐