Python中带有Selenium的泛型代码,用于从UI读取值

2024-03-28 15:13:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用通用代码,以减少重复的代码读取值从用户界面如果有任何额外的建议,请让我知道。你知道吗

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")


Tags: 对象textnameidbyreturndriverelements
1条回答
网友
1楼 · 发布于 2024-03-28 15:13:02

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

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

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

from selenium.webdriver.common.by import By

相关问题 更多 >