我在 init 中定义了两个父XPath,如下所示:
<body>
<p>Your content goes here</p>
</body>
但我处于必须使用三个父xpath的情况。父xpath根据页面而不同。但是每个页面都没有全部三个xpath。它只有一个父xpath。
我知道我可以使用try,但是有两个或更多父xpath使得难以维护代码并使其变得混乱。有什么建议吗?
答案 0 :(得分:1)
解决它的一种方法是使用“|”连接XPath表达式 (表示“或”)运营商:
def __init__(self, driver, fieldName):
self.driver = driver
expressions = [
"//form[@name='quickeditfrm']//tr/th/label[text()='%s']" % fieldName,
QuickEditLocatars.ROWPARENT % fieldName,
QuickEditLocatars.ROWPARENT % (fieldName + ":"),
"//form[@name='quickeditfrm']//tr/th/label[text()='%s']" % (fieldName + ":")
]
self.text = self.driver.find_element_by_xpath(" | ".join(expressions)
当任何表达式找不到元素时,您可能需要添加一个try / except来处理“负面”情况。