我有一个大的超文本标记语言电子邮件表,我正在尝试查找特定电子邮件的名称,然后在此元素中选择一个按钮。我可以通过XPATH轻松找到表体:
//*[@id="reportList"]/tbody
那么在这个表中有多行(tr),是否可以在所有表行中搜索文本?
我得到的最接近的结果是:
driver.find_element(By.XPATH, '//*[@id="reportList"]/tbody[contains(text(), "example text")]')
不幸的是,这无法定位元素。
我知道我可以简单地复制XPATH以定位特定的tr,但是出于自动化目的,我尝试传递一个字符串,然后在所有tr中搜索我的特定文本。
我是python selenium的新手。我可以使用此行在td
中打印文本
XPATH= //*[@id='reportList']//*[contains(text(), 'example text')]
在我的例子中,我想遍历行并单击行(tr
)的第一列(td
)中的链接,该链接在第3列中具有文本“CREATED”(td
)。
获取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')]
据我所知,table有tr
和td
,可能您需要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。然后我想点击这个。
请帮助我,我正在尝试选择一个图片,这是一个链接(一个网站上的培训师) 这是我的代码: