自動化測試基礎篇--Selenium判斷元素是夠存在


selenium+python處於學習階段,功能實現之后開始整理之前寫的代碼,突然發現一個功能沒有做判斷,比如,點擊“請登錄”,需要判斷一下這個彈出框到底彈了沒有,這樣就需要判斷某個元素是否存在,使用is_displayed函數只能用於該元素存在去判斷此元素是否出現,而不能判斷某個元素是否存在,所以就自己寫了個方法。

一、find_elements方法判斷

1.find_elements方法是查找頁面上所有相同屬性的方法;

2.寫一個函數判斷,找到就返回Ture,沒找到就返回False(或者不止一個)。

二、捕獲異常

1.如果沒找到元素會拋異常,返回False;

2.如果找到元素就返回Ture;

3.但是這個方法有個弊端,如果頁面上存在多個一樣元素,也會返回Ture的。

三、參考代碼

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author  : chen
# @File    : isTure.py
# @Software: PyCharm
from selenium import webdriver
import time

url = 'https://www.baidu.com'
browser = webdriver.Firefox()
browser.get(url)
browser.implicitly_wait(30)

# 創建一個判斷函數
def is_element_exist(id):
    flag = browser.find_elements_by_id('kw')
    if len(flag) == 0:
        print( "元素未找到:%s"% id)
        return False
    elif len(flag) == 1:
        return True
    else:
        print("找到%s個元素:%s"%(len(flag),id))

# 判斷頁面上有無id為kw的元素
if is_element_exist("#kw"):
    browser.find_element_by_id("kw").send_keys("yoyoketang")
# 判斷頁面有無標簽為input元素
if is_element_exist("input"):
    browser.find_element_by_tag_name("input").send_keys("yoyoketang")
# 判斷頁面有無id為xxx的元素
if is_element_exist("xxx"):
    browser.find_element_by_id("xxx").send_keys("yoyoketang")


def isElementExist(self,element):
    flag = True
    driver = self.driver
    try:
        driver.find_element_by_xpath(element)
        return flag
    except:
        flag = False
        return flag
寫在最后的話:這些都是小編自己一個字一個字敲上去的,原創算不上,可能很多類似的資料,小編寫這個的目的是為了激勵自己在學習道路上養成良好的習慣,所以轉載請注明出處,謝謝!
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM