【问题标题】:How to enforce specific type on python List如何在 python List 上强制执行特定类型
【发布时间】:2021-05-16 11:36:36
【问题描述】:

假设我有一个 python 类

class cls:
      x=5

我想创建一个列表,它只能包含 cls 类型的对象,例如

a = [obj1,obj2,obj3....]

所有对象都必须是 cls 类型

我该如何强制执行

另外我想提一下提出这个问题的原因

在 selenium 中,我们有一个名为 WebElement 的类,现在方法 findElements_by_xpath(xpath) 返回一个 WebElemnet 列表。所以如果我像下面那样做

elementlist = driver.findElements_by_xpath(xpath)

现在我将这个元素列表传递给函数 fun(elementlist ) 并执行类似的操作

def fun(elementlist):
    for element in elementlist
       element.click()

虽然这工作得非常好,但由于 fun 中的 elementlist 变量是 any 类型,pycharm 智能不起作用,并且没有给出与可在元素上操作的方法相关的使用 - 如果类型为 webElement 则不使用

【问题讨论】:

    标签: python selenium pycharm


    【解决方案1】:
    def fun(elementlist:List[WebElement]):
        for element in elementlist:
            element..click()
    

    尝试定义类型,你需要的导入是:

    from selenium.webdriver.remote.webelement import WebElement
    

    【讨论】:

      猜你喜欢
      • 2023-02-02
      • 2023-01-25
      • 2018-11-29
      • 1970-01-01
      • 2018-09-26
      • 2019-08-14
      • 1970-01-01
      • 2017-04-09
      相关资源
      最近更新 更多