获取包含特定文本的td,然后找到其父母和兄弟姐妹

时间:2015-05-25 13:36:20

标签: python html selenium selenium-webdriver

我正在尝试使用<td>从包含一些特定文本的表格中找到Python Selenium元素,我能够得到它。但是当我在selected元素上调用parent方法时,它返回table的实例,而不是表的父行。我正在做的是

driver = webdriver.Firefox()
driver.get('http://www.example.com')
WebDriverWait(driver, self.explicit_wait).until(
        EC.presence_of_element_located((By.ID, "table-id"))
        )
td = driver.find_element_by_xpath("//*[contains(text(), 'some texts')]"
parent_row = td.parent    # get the parent of td element

但在parent_row驱动程序中返回表实例而不是行实例。 帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

根据Webdriver specification,无法直接使用WebDriver获取父元素。硒中WebElement的{​​{3}} Python绑定在内部使用,并不指代元素的直接父级。它指的是您在WebDriver上调用find_element_by_*的实例:

  

parent

     

从此发现此元素的WebDriver实例的内部引用。

您可以使用xpath获取父元素:

parent_row = td.find_element_by_xpath("..")