...有两种私有方法可能对页面对象中的定位器有用。这是两个私有方法:find_element和find_elements。
因此,find_element()
和find_elements()
被视为“私有”。对我而言,这意味着“不应使用这些方法”。 find_element()
文档字符串进一步推动了这一想法:
查找具有“按”策略和定位器的元素。优先使用find_element_by_ *方法 可能。
因此建议避免使用find_element()
。
但是,根据我的经验,find_element()
更好,因为它不仅更短,而且将定位符声明为(按“方法”的“定位符”)元组,然后在find_element()
中找到它们如果locator方法更改,我的页面对象需要较少的维护。我将其更改在定位器上的某个位置,而不是元素所在的每个实例。
此外,当使用为我定位元素的预期条件(例如element_located_to_be_selected
或presence_of_element_located
)时,他们希望使用(By.method,“ locator”)元组,如果我已经有那个元组。选择器更改时的维护再一次变得容易,因为我不必在我的代码中搜索我已对By
方法进行硬编码的位置。
find_element_by_*
策略仅在幕后调用find_element()
,因此在功能上没有区别。
为什么find_element()
被视为“私有”,不鼓励使用它?