我有这样的课:
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
对象的功能。
但是我想不出来。
试着做这样的事。注:这尚未经过测试。
@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)]
代码从这里开始