【问题标题】:Generic Code in Python with Selenium for Reading value from UI使用 Selenium 的 Python 中的通用代码,用于从 UI 中读取值
【发布时间】:2023-03-26 12:14:01
【问题描述】:

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

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

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

它取objid ---> object 的实际 id 并返回 object 的文本值。

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

【问题讨论】:

  • 您有问题吗?
  • @cody 我的问题是我可以包含任何最新的对象类型以使其通用还是从 UI 读取值的更好方式?
  • @GhostCat :为我的错误道歉,我是新用户并在这里学习。当然,我不会再重复这个了。再次抱歉
  • 没关系,我们都是来学习的。

标签: python selenium


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2022-01-08
    相关资源
    最近更新 更多