当前位置: 首页 > 知识库问答 >
问题:

Selenium-通过文本查找xpath(td/tr)

葛和志
2023-03-14

我有一个大的超文本标记语言电子邮件表,我正在尝试查找特定电子邮件的名称,然后在此元素中选择一个按钮。我可以通过XPATH轻松找到表体:

//*[@id="reportList"]/tbody

那么在这个表中有多行(tr),是否可以在所有表行中搜索文本?

我得到的最接近的结果是:

driver.find_element(By.XPATH, '//*[@id="reportList"]/tbody[contains(text(), "example text")]')

不幸的是,这无法定位元素。

我知道我可以简单地复制XPATH以定位特定的tr,但是出于自动化目的,我尝试传递一个字符串,然后在所有tr中搜索我的特定文本。

共有3个答案

汲雅珺
2023-03-14

我是python selenium的新手。我可以使用此行在td中打印文本

XPATH= //*[@id='reportList']//*[contains(text(), 'example text')]

在我的例子中,我想遍历行并单击行(tr)的第一列(td)中的链接,该链接在第3列中具有文本“CREATED”(td)。

左翰海
2023-03-14

获取xpath的三个选项:

XPATH= //*[@id='reportList']//*[contains(text(), 'example text')]

如果您的文本带有tr:

XPATH= //*[@id='reportList']/tbody//tr[contains(text(), 'example text')]

如果您的td文本:

XPATH= //*[@id='reportList']/tbody//tr//td[contains(text(), 'example text')]
松昱
2023-03-14

据我所知,table有trtd,可能您需要td。所以xPath可以是这样的:

driver.find_element(By.XPATH, "//*[@id='reportList']/tbody//td[contains(text(), 'example text')]")

其中<代码>。。。t车身//t表示它将搜索车身的所有子节点。因此,td不应是tbody的直接子级

PS我还会添加etc方法以确保该元素存在:

# will wait up to 10 seconds until element will be present on the page
element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id='reportList']/tbody//td[contains(text(), 'example text')]"))
    )

注意:你必须做一些导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
 类似资料:
  • 我有这一页: 我想按节群链接: 下面是y在以下内容中找到的解释:http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webelement.webelement.find_element_by_xpath

  • 问题内容: 我的网页中有9行6列的表格。我想搜索文本“ MakeGoodDisabled- Programwise_09_44_38_461(n)”并获取单元格的xpath。我使用了以下内容,但由于无法在页面上找到文本而失败。你能帮忙吗?我正在使用Selenium Webdriver Junit对此进行编码。 问题答案: 我的意图是在表中查找文本并在同一行中获取相应的下一列值。我以为我将用所需的列

  • 我注意到,在selenium webdriver中查找xpath元素的函数text()在这种情况下不起作用: 如您所见,文本“Selecionar”位于按钮标记内,但在文本后还有其他标记,在本例中,当我尝试使用此模式通过xpath查找元素时://*[text()='Selecionar']未找到任何元素。 你们都知道在这种情况下,假设使用元素按钮的文本(因为在其他情况下,它将是唯一的选项),如何查

  • 问题内容: 如果我搜索单个字符串,则效果很好: 但是我可以在下面的示例中有一个 or 语句吗? 问题答案: 在两个函数调用之间说 或使用函数使xpath不区分大小写

  • 如何在网站上找到像下图一样的h1和p文本的文章? 我试过这个,在那里我可以找到所有的文章,我不知道如何找到这一个与文本在h1和文本在p。然后我想点击这个。

  • 请帮助我,我正在尝试选择一个图片,这是一个链接(一个网站上的培训师) 这是我的代码: