Selenium中定位器和Webelement之间有什么区别?

时间:2014-03-05 09:04:37

标签: python selenium

在selenium中expected_conditions的文档中,这些方法要么采用webelement,要么采用定位器。它们显然非常相似,但它们有什么区别?

3 个答案:

答案 0 :(得分:1)

Locator用于标识元素。您可以使用它,或者如果您已经创建了元素对象,则可以使用它 如果直接传递元素(如果有的话),WebDriver将不需要创建新对象。如果你传递定位器,WebDriver将使用它来创建Element对象 PS:我对Python不太熟悉。

答案 1 :(得分:1)

他们是不同的。

定位器只不过是一种定义如何元素的抽象方式。

WebElement只是DOM中该元素的引用。它是Selenium向您表示DOM元素的方式,以便您可以对其进行操作。

答案 2 :(得分:0)

正如其他两位回答者所说。定位器用于标识实际元素。而webelement是找到的对象。这在代码中是什么样的?

以下为您提供了一个webelement对象。 webelement = browser.find_element_by_id('id_here')

如果您需要使用文档中所述的定位器,则需要执行以下操作。取自Explicit waiting

的示例
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebdriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(ff, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement")))