python - 获取包含特定文本的 td,然后找到其 parent 和 sibling

标签 python html selenium selenium-webdriver

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

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驱动程序返回表实例而不是行实例。 帮助将不胜感激

最佳答案

根据 Webdriver specification ,没有办法直接使用WebDriver获取父元素。 .parent attribute selenium Python 绑定(bind)中的 WebElement 是在内部使用的,并不引用元素的直接父元素。它引用您在以下位置调用 find_element_by_*WebDriver 实例:

parent

Internal reference to the WebDriver instance this element was found from.

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

parent_row = td.find_element_by_xpath("..")

关于python - 获取包含特定文本的 td,然后找到其 parent 和 sibling ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30439688/

相关文章:

java - 在 Java 中找不到指定 id 的上下文 - Selenium webdriver

python - 如何删除 dask 数据框中带有 nan 单元格的行?

html - 在 Visual Basic 中对齐导航菜单

html - 在 Angular 中,如何将类的变量设置为函数的结果?

html - 浏览器和 z-index 问题

python - 如何使用selenium在python的特定文本后定位输入元素

machine-learning - 在java中加载 tensorflow 模型

python - 遍历Python列表并将数字输出到列表

python - BeautifulSoup - 组合连续的标签

Python Selenium元素点击拦截