有時候不知道某個元素或者alter是否存在,但為了程序更加健壯性,需要對元素做出是否存在的判斷,以分別做出不同的操作。
selenium是沒有默認的方法或函數的,但是我們可以通過try except 捕獲異常來自己封裝函數:
示例代碼如下:
from selenium import webdriver
class ElementExist(object):
@classmethod
def isElementExist(cls,driver,elements):
"""
:param driver: 瀏覽器驅動
:param elements: 元素xpath定位方法
:return: type bool ,True or False
"""
try:
driver.find_element_by_xpath(elements)
print("True")
return True
except:
print("False")
return False
@classmethod
def isexistAlter(cls,driver):
"""
:param driver: 瀏覽器驅動
:param alter: 彈窗
:return: type bool ,True or False
"""
try:
alter=driver.switch_to.alert
alter.text
return True
except:
print("False")
return False
if __name__=="__main__":
driver = webdriver.Chrome(executable_path="C:\\Python37\chromedriver.exe") # google驅動地址
driver.get("https://www.baidu.com")
ElementExist.isElementExist(driver,'//input[@id="su"]')
#ElementExist.isexistAlter(driver)