selenium—用NoSuchElementException异常判断页面元素是否存在

一、知识补充

1、find_element的一种使用方法:

find_element(by=方法,value=值)

例如: find_element(by="id",value="query")

2、selenium.common.exceptions模块

from selenium.common.exceptions import NoSuchElementException

使用WebDriver实施自动化过程中抛出的所有异常都是用selenium.common.exceptions模块导入的

例如NoSuchElementException、TimeoutException

二、代码示例

# coding=UTF-8
#20.判断页面元素是否存在
import sys
reload(sys)
sys.setdefaultencoding(‘utf8‘)
from selenium import webdriver
import unittest
import time
from selenium.common.exceptions import NoSuchElementException

class Case20(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome()

    def isElementPresent(self, a ,b):
        try:
            element = self.driver.find_element(by= a, value= b)
        except NoSuchElementException,e:
            print e
            return False
        else:
            return True

    def test_isElementPresent(self):
        url = "https://www.sogou.com"
        self.driver.get(url)
        res = self.isElementPresent("id", "query")
        if res is True:
            print u"元素在页面上"
        else:
            print u"元素不在页面上"

    def tearDown(self):
        self.driver.quit()

if __name__ == ‘__main__‘:
    unittest.main()



原文地址:https://www.cnblogs.com/erchun/p/11806911.html

时间: 2024-11-10 01:15:31

selenium—用NoSuchElementException异常判断页面元素是否存在的相关文章

Selenium(二十):expected_conditions判断页面元素

1. 判断元素(expected_conditons) 作为一个刚刚转到python开发的小朋友,在开发前只将前辈们封装的方法看了一遍,学了一边selenium基础.看到封装的方法有什么判断元素是否存在.判断元素是否可见,而在基础知识中根本不存在,一脸懵逼. 直到写爬虫案例的时候,突然发现了selenium下的一个模块吸引了我,因为我在其他开发中根本没有碰到这个模块,所以我就去了解了一下,然后就有了这篇博客. selenium的expected_conditions模块一般也简称EC,收集了一系

jQuery 判断页面元素是否存在

在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在.原因是对一个不存在的元素进行操作是不允许的. 例如: document.getElementById("someID").innerHTML("hi"); 如果ID为"someID"的元素不存在,我们将得到Javascript运行错误:document.getElementById("someID") is null 正确的写法应该

jQuery基础 -- 如何判断页面元素存在与否

在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在.原因是对一个不存在的元素进行操作是不允许的.例如: document.getElementById("someID").innerText("hi"); 如果ID为"someID"的元素不存在,我们将得到Javascript运行错误:document.getElementById("someID") is null 正确的写法应该是

expected_conditions判断页面元素

expected_condtions提供了16种判断页面元素的方法: 1.title_is:判断当前页面的title是否完全等于预期字符串,返回布尔值 2.title_contains:判断当前页面的title是否包含预期字符串,返回布尔值 3.presence_of_element_located:判断某个元素是否被加到dom树下,不代表该元素一定可见 4.visibility_of_element_located:判断某个元素是否可见,可见代表元素非隐藏,并且元素的宽和高都不为0 5.vis

Python3.x:Selenium中的webdriver进行页面元素定位

Python3.x:Selenium中的webdriver进行页面元素定位 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver就是利用元素的这些属性来进行定位的. 可以用于定位的常用的元素属性: id name class name tag name link text partial link text xpath css selector 对应于webdriver中的定位一个元素方法分别是: driver.find_e

判断页面元素是否进入可视区域

近日要做一个页面功能,需要检测某个页面元素是否位于当前屏幕中的可视区域,首先想到的当然是获取offsetLeft和offsetTop,将这个值分别与body.scrollTop/scrollLeft进行比较,得出元素是否可视. 这次查资料时偶然看到了getBoundingClientRect():该方法获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置,他返回的是一个对象,即Object,该对象有是个属性:top,left,right,bottom:这里的top.left和css中的理解

Python+Selenium 自动化实现实例-获取页面元素信息(百度首页)

#coding=utf-8from selenium import webdriverdriver = webdriver.Chrome()driver.get("http://www.baidu.com") # 获得输入框尺寸size = driver.find_element_by_id("kw").sizeprint size #返回百度页面底部备案信息 text = driver.find_element_by_id("cp").text

selenium采用find_element_by方法识别页面元素

主要是练习获取页面中的各元素,马克 1 # coding:utf-8 2 import time 3 from selenium import webdriver 4 import unittest 5 from pythontest.commlib.baselib import * 6 7 #引用封装后的日志系统 8 log = TestLog().getlog() 9 class BaiBu(unittest.TestCase): 10 u'''[百度.类]''' 11 def setUp(

selenium采用xpath方法识别页面元素

有些HTML页面中的元素中属性较少,经常有找不到id.class.name等常用属性的时候,这个时候xpath.css就能很好的识别到我们的元素. Firefox和chrome浏览器中均有xpath.css插件工具. 以下为通过xpath方法写的测试用例: 1 def test_xpath(self): 2 u'''采用xpath识别元素''' 3 self.browser.find_element_by_xpath(".//*[@id='kw']").send_keys("