Python 如何提取a<;td>;元素相对于另一个的内部文本<;td>;要素
我正在python中使用selenium。我遇到了这个表webelement。我需要检查webelement中是否存在一个字符串,如果存在,则返回相应的字符串Python 如何提取a<;td>;元素相对于另一个的内部文本<;td>;要素,python,selenium,selenium-webdriver,xpath,webdriver,Python,Selenium,Selenium Webdriver,Xpath,Webdriver,我正在python中使用selenium。我遇到了这个表webelement。我需要检查webelement中是否存在一个字符串,如果存在,则返回相应的字符串 <table width="700px" class="tableListGrid"> <thead> <tr class="tableInfoTrBox"> <th>Date</th> <th>
<table width="700px" class="tableListGrid">
<thead>
<tr class="tableInfoTrBox">
<th>Date</th>
<th>Task Code</th>
<!-- th>Phone Number</th -->
<th>Fota Job</th>
<th colspan="2" class="thLineEnd">Task Description</th>
</tr>
</thead>
<tbody>
<tr class="tableTr_r">
<td>2018-04-06 05:48:29</td>
<td>FU</td>
<!-- td></td -->
<td>
<a href="javascript:checkSchedule('57220180406-JSA69596727');">57220180406-JSA69596727</a>
</td>
<td style="text-align:left;">
updated from [A730FXXU1ARAB/A730FOJM1ARAB/A730FXXU1ARAB] to [A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9]
</td>
<td>
<table class="btnTypeE">
<tr>
<td>
<a href="#syncml" class="02320180406WSA84301933" onclick="showSyncML('IMEI352020090050529', '02320180406WSA84301933')">View</a>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
日期
任务代码
Fota工作
任务描述
2018-04-06 05:48:29
傅
从[A730FXXU1ARAB/A730FOJM1ARAB/A730FXXU1ARAB]更新为[A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9]
我需要在这个元素中搜索“A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9”,并返回“57220180406-JSA69596727”,它出现在网页中不同位置的同一行中。在硒中有可能吗
编辑:清除代码以仅包含有用数据 可以通过使用以下Xpath查找元素来实现:
//td[contains(., 'A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9')]/preceding-sibling::td[1]/a
Xpath可以理解为
查找包含“A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9”的td
。然后找到td
在找到的td
之前,移动到a
标记
之后,您可以使用selenium获取文本
driver.find_element(By.XPATH, '//td[contains(., 'A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9')]/preceding-sibling::td[1]/a').text
可以通过使用以下Xpath查找元素来实现:
//td[contains(., 'A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9')]/preceding-sibling::td[1]/a
Xpath可以理解为
查找包含“A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9”的td
。然后找到td
在找到的td
之前,移动到a
标记
之后,您可以使用selenium获取文本
driver.find_element(By.XPATH, '//td[contains(., 'A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9')]/preceding-sibling::td[1]/a').text
要查找文本,例如A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9,并查找相关文本,例如57220180406-JSA69596727,可以编写如下函数:
def test_me(myString):
myText = driver.find_element_by_xpath("//table[@class='tableListGrid']//tbody/tr[@class='tableTr_r']//td[.='" + myString + "']//preceding::td[1]/a").get_attribute("innerHTML")
test_me("A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9")
现在,从main()
/@Test
中,您可以使用所需的文本调用函数,如下所示:
def test_me(myString):
myText = driver.find_element_by_xpath("//table[@class='tableListGrid']//tbody/tr[@class='tableTr_r']//td[.='" + myString + "']//preceding::td[1]/a").get_attribute("innerHTML")
test_me("A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9")
要查找文本,例如A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9,并查找相关文本,例如57220180406-JSA69596727,可以编写如下函数:
def test_me(myString):
myText = driver.find_element_by_xpath("//table[@class='tableListGrid']//tbody/tr[@class='tableTr_r']//td[.='" + myString + "']//preceding::td[1]/a").get_attribute("innerHTML")
test_me("A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9")
现在,从main()
/@Test
中,您可以使用所需的文本调用函数,如下所示:
def test_me(myString):
myText = driver.find_element_by_xpath("//table[@class='tableListGrid']//tbody/tr[@class='tableTr_r']//td[.='" + myString + "']//preceding::td[1]/a").get_attribute("innerHTML")
test_me("A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9")
更新HTML示例,因为它不是真正可读的。共享您当前的Python代码以及已编辑的代码。我得到了一列字符串的一部分,需要在另一列中返回该字符串。本例中的第一个字符串是“A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9”,预期的输出是“57220180406-JSA69596727”,请更新HTML示例,因为它不是真正可读的。共享您当前的Python代码以及已编辑的代码。我得到了一列字符串的一部分,需要在另一列中返回该字符串。本例中的第一个字符串是“A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9”,预期的输出是“57220180406-JSA69596727”,带有引号的语法错误很小,但效果很好。谢谢男人:带引号的小语法错误,但除了它的魅力。谢谢男士:D