51Testing软件测试论坛

标题: 请问下selenium+python如何判断一个元素是否存在? [打印本页]

作者: yaoer    时间: 2014-11-18 19:15
标题: 请问下selenium+python如何判断一个元素是否存在?
请问下selenium+python如何判断一个元素是否存在啊?
我想判断A元素是否存在,如果存在执行1操作,如果不存在执行2操作。

作者: ruoyi1314520    时间: 2014-11-19 00:14
try:
    driver.find_element.xxxxx
    a=True
except:
    a=false
if a==True:
   print "元素存在"
elif a==False:
   print "元素不存在"
作者: looshing    时间: 2014-11-19 09:38
你定位到A元素,然后将A元素赋值给 B

然后你
if B:
    (继续你操作的步骤)
例子:
  1. from selenium import webdriver
  2. import time
  3. a = webdriver.Chrome()

  4. a.get("http://baidu.com")

  5. b = a.find_element_by_id("kw")

  6. if not b:
  7.     b.send_keys("a")
  8.     time.sleep(2)
  9.     a.find_element_by_id("su").click()
  10. else:
  11.     a.close()
复制代码
或作试用assert,也可以。

如果你是找的是属性,那可以使用
get_attribute
例子:
先定位好元素赋值给 i
然后再判断 i 里面是否有这个属性(type)
if i.get_attribute('type') == 'checkbox'
作者: log_1    时间: 2015-2-3 09:37
selenium中有个异常,NoSuchElementException,不记得怎么拼写了,通过from selenium.common.exceptions import NoSuchElementException,如果定义一个检查元素的方法的话,加上返回值就可以了,可以加入所有元素定位的方法,封装成一个元素检查函数,例如下面,
def isElement(self,identifyBy,locatorString):
   flag = False
   try:
     if identifyBy == "id":
        driver.find_element_by_id("kw")
        flag = True
     elif identifyBy == "xpath":
         ......
   except NoSuchElementException,e
        pring "未找到元素"
        flag = False
   return flag
作者: wyz_testing    时间: 2015-2-7 20:36
try:
    driver.find_element_by_xpath("xxx x").is_displayed()
except:
    print "未找到元素"
else:
    print "元素存在"

希望能帮助你!
作者: 猫星人    时间: 2015-3-31 16:19
顶一下哦。。。。给力
作者: a123465123    时间: 2015-4-5 22:12
不知道能不能写个自动发布
作者: dandanstrong    时间: 2015-6-1 10:36
ruoyi1314520 发表于 2014-11-19 00:14
try:
    driver.find_element.xxxxx
    a=True

请问为什么出错显示True未定义呢,要怎么处理

作者: wuguhun025    时间: 2016-3-2 14:55
用java该怎么实现啊???楼主
作者: 清晨一缕阳光    时间: 2016-4-13 09:12
  1.         public boolean isDisplay(Locator locator)
  2.         {
  3.                 boolean flag = false;
  4.                 try
  5.                 {
  6.                         driver.findElement(locator);//locator是定位元素的方式,方式可以自己选择
  7.                         flag = true;
  8.                 } catch(NoSuchElementException e)
  9.                 {
  10.                         System.out.println("未找到元素!"+ e.getMessage());
  11.                 }
  12.                 return flag;
  13.         }
  14.        
  15.         if(isDisplay)
  16.         {
  17.                 //执行 1
  18.         }else
  19.         {
  20.                 //执行2
  21.         }
复制代码





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2