首页 > 解决方案 > 使用 Selenium 的 Python 中的通用代码,用于从 UI 中读取值

问题描述

我正在使用通用代码来减少重复代码以从 UI 中读取值,如果有任何其他建议请告诉我。

readvaluefromUI(objidtype, objid)功能如下所述。

它需要objidtype---> 例如(ID,CSS_SELECTOR,NAME etc)

它采用objid---> 对象的实际 id 并返回对象的文本值。

def readvaluefromUI(objidtype, objid):
    try:
        if objidtype == "ID":
            element =  driver.find_element_by_id(objid).text
            return(element)
        elif objidtype == "CSS_SELECTOR":
            element = driver.find_element_by_css_selector(objid).text
            return(element)
        elif objidtype == "CLASS_NAME":
            element = driver.find_elements_by_class_name(objid).text
        return(element)   
    elif objidtype == "XPATH":
        element = driver.find_element_by_xpath(objid).text
        return(element)
    elif objidtype == "TAGNAME":
        element = driver.find_elements_by_tag_name(objid).text
        return(element)
    elif objidtype == "NAME":
        element = driver.find_elements_by_name(objid).text
        return(element)
except:
    Throwable(traceback)

它返回您可以在调用方法中使用的对象。例如 readvaluefromUI(ID, "firstname")

标签: pythonselenium

解决方案


您可以通过以下方式简化您的通用方法:(注意:这不是任何最新的对象类型,这已经可用)

def readvaluefromUI(objidtype, objid):
   element = driver.find_element(objidtype,objid)
   return element.text

在这种情况下,您需要传递 By 类型的 objidtype(例如:By.ID / By.XPATH 等)。为此,您需要导入:

from selenium.webdriver.common.by import By

推荐阅读