提问者:小点点

WebElement对象的包装扩展


我有这样的课:

class Node(WebElement):
    def __init__(self, parent, id_):
        super().__init__(parent, id_)
   ...
   <some methods, and selectors in it>

我在测试:

nodes = [node for node in self.driver.find_element_by_xpath(node_xpath)]

当然,节点是WebElements的列表。

我想将其转换为节点类型的列表,这样我就可以简单地使用它的优点,并拥有WebElement对象的功能。

但是我想不出来。


共1个答案

匿名用户

试着做这样的事。注:这尚未经过测试。

 @classmethod
 def from_WebElement(cls, a: WebElement):
    # Create new b_obj
    b_obj = cls()
    # Copy all values of A to B
    # It does not have any problem since they have common template
    for key, value in a.__dict__.items():
        b_obj.__dict__[key] = value
    return b_obj

nodes = [Node.from_WebElement(a=node) for node in self.driver.find_element_by_xpath(node_xpath)]

代码从这里开始