检查是否有任何子元素满足从兄弟开始的特定单词 DOM
check if any child element meets specific words starting from a sibling DOM
我想搜索这些兄弟姐妹中哪一个有特定的文本'app'。由于没有绝对引用,我从 'DOD' 这个词开始搜索。之后,我搜索:following-sibling::td/div/table/tbody 然后我想知道以下 'tr'(在本例中为 2)是否有单词 'app'。然后,导航到该元素并单击它。
以下是HTML:
<tr align="center">
<td align="left" valign="top" style="width:30%;">Application</td>
<td align="left" valign="top" style="width:30%;">DOD 11-24-2021</td>
<td align="right" valign="middle" style="width:32%;">
<div>
<table class="Nested_ChildGrid" cellspacing="0" cellpadding="0" rules="rows" border="0" id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs" style="color:Black;border-width:0px;border-style:None;width:100%;border-collapse:collapse;">
<tbody>
<tr align="center">
<td align="center" valign="middle" style="width:70px;">
<td align="left" valign="middle" style="width:75%;">
<span id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl02_lblDocDesc">Application</span>
</td>
<td class="Hide" style="width:90px;"> </td>
<td style="width:40px;">3</td>
<td class="Hide">4</td>
<td class="Hide">18200854</td>
<td align="right" valign="middle" style="width:60px;">
<a id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl02_HyperLinkFCEC" class="doclinks hidden-print" aria-label="Document ID" href="Ecomm/ViewEdocs.aspx?ID=uhJ1x784NcaNrVVzKW0vYhObQ19y7BXopEw8HPMBvPh59c8wKiz7EfP0U9mCs68+xxQ9sHISXdf9TbzLHLm9u3qat1tCpKJn7jkKCXxMf3CGdx1PMPNivnJv5+IoPv/FaerVR/7cUZCYG+WJjeFE0/4qN1D5ZZGZAl9+i1QlqiXCZyQI10yEtQc9FF2/d0mn" target="_blank">View</a>
<a id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl02_HyperLinkFCECLegacy" class="doclinks hidden-print" aria-label="Document ID" href="Ecomm/ViewEdocs.aspx?ID=KMjX55lU5BVhR9pieAD4vZ06nmikECALhQiRaHwCUvFJVB0oLK/aItQZWZ7AYse5NEZaq+5vZ+uM26hmC5u2Lklzx02fM/sralEBjeeLz/+QayOXHkcVDGSG8y52q5CG1CcLxXRHqpChF5pMkTPvLp6oTyQgVUXB6a2eQHUYKGz+tTboJtXPdYTift/M68Uo" target="_blank"></a>
</td>
<tr align="center">
<td align="center" valign="middle" style="width:70px;">
<td class="Hide">40448965</td>
<td align="left" valign="middle" style="width:75%;">
<span id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl03_lblDocDesc">Document</span>
</td>
<td class="Hide" style="width:90px;"> </td>
<td style="width:40px;">27</td><td class="Hide">4</td>
<td class="Hide">18200855</td>
<td align="right" valign="middle" style="width:60px;">
<a id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl03_HyperLinkFCEC" class="doclinks hidden-print" aria-label="Document ID" href="Ecomm/ViewEdocs.aspx?ID=uhJ1x784NcaNrVVzKW0vYslV1nQ3hIRYmXLxbQq33tyshCGyHbOIapchVlNHL/s6sP+5f245ruOERRUrUYOrpDvAZFR42jcGUshFcX0WcMX/1Ds0ACEkxbDF0eRUp5DOJADJWKC/sJ23XH2yH6W4IJrWYGJEcqPrcIUgkyRWqCByEnW0a9EhaaoRk0ocHKwK" target="_blank">View</a>
<a id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl03_HyperLinkFCECLegacy" class="doclinks hidden-print" aria-label="Document ID" href="Ecomm/ViewEdocs.aspx?ID=KMjX55lU5BVhR9pieAD4vZ1FGtwzRAaZfXZY4CPE4p5XSrA4rq/HgZJGXPnI2Kl2vx8vyKEZmh2chQz0Pw13X2YMFwRVg83JzCI/gTQFB1L+NKDaHm2c8Cxjs9UzF5U7u5jq9KLxemMKWMSqI+IaUv0wdeuSsaS2LMFBPnmYClZmdrCp955OJux9WvsrcJH9" target="_blank"></a>
</td>
</tr>
下面是一些我一直在尝试但没有成功的代码:
path = driver.find_element(By.XPATH, '//td[contains(text(), "DOD")]/following-sibling::td/div/table/tbody/*/*/span[contains(text(), "app")]/parent::*/td[5]/a').click()
提前致谢!
将 <td>
元素的文本标识为 DOD 并找到相应的 <span>
文本为App 然后点击相关的 <a>
标签,文本为 View 你需要诱导 WebDriverWait for the and you can use the following :
使用 XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td[starts-with(., 'DOD')]//following-sibling::td[.//span[starts-with(., 'App')]]//following-sibling::td[.//a[text()='View']]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
我想搜索这些兄弟姐妹中哪一个有特定的文本'app'。由于没有绝对引用,我从 'DOD' 这个词开始搜索。之后,我搜索:following-sibling::td/div/table/tbody 然后我想知道以下 'tr'(在本例中为 2)是否有单词 'app'。然后,导航到该元素并单击它。
以下是HTML:
<tr align="center">
<td align="left" valign="top" style="width:30%;">Application</td>
<td align="left" valign="top" style="width:30%;">DOD 11-24-2021</td>
<td align="right" valign="middle" style="width:32%;">
<div>
<table class="Nested_ChildGrid" cellspacing="0" cellpadding="0" rules="rows" border="0" id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs" style="color:Black;border-width:0px;border-style:None;width:100%;border-collapse:collapse;">
<tbody>
<tr align="center">
<td align="center" valign="middle" style="width:70px;">
<td align="left" valign="middle" style="width:75%;">
<span id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl02_lblDocDesc">Application</span>
</td>
<td class="Hide" style="width:90px;"> </td>
<td style="width:40px;">3</td>
<td class="Hide">4</td>
<td class="Hide">18200854</td>
<td align="right" valign="middle" style="width:60px;">
<a id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl02_HyperLinkFCEC" class="doclinks hidden-print" aria-label="Document ID" href="Ecomm/ViewEdocs.aspx?ID=uhJ1x784NcaNrVVzKW0vYhObQ19y7BXopEw8HPMBvPh59c8wKiz7EfP0U9mCs68+xxQ9sHISXdf9TbzLHLm9u3qat1tCpKJn7jkKCXxMf3CGdx1PMPNivnJv5+IoPv/FaerVR/7cUZCYG+WJjeFE0/4qN1D5ZZGZAl9+i1QlqiXCZyQI10yEtQc9FF2/d0mn" target="_blank">View</a>
<a id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl02_HyperLinkFCECLegacy" class="doclinks hidden-print" aria-label="Document ID" href="Ecomm/ViewEdocs.aspx?ID=KMjX55lU5BVhR9pieAD4vZ06nmikECALhQiRaHwCUvFJVB0oLK/aItQZWZ7AYse5NEZaq+5vZ+uM26hmC5u2Lklzx02fM/sralEBjeeLz/+QayOXHkcVDGSG8y52q5CG1CcLxXRHqpChF5pMkTPvLp6oTyQgVUXB6a2eQHUYKGz+tTboJtXPdYTift/M68Uo" target="_blank"></a>
</td>
<tr align="center">
<td align="center" valign="middle" style="width:70px;">
<td class="Hide">40448965</td>
<td align="left" valign="middle" style="width:75%;">
<span id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl03_lblDocDesc">Document</span>
</td>
<td class="Hide" style="width:90px;"> </td>
<td style="width:40px;">27</td><td class="Hide">4</td>
<td class="Hide">18200855</td>
<td align="right" valign="middle" style="width:60px;">
<a id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl03_HyperLinkFCEC" class="doclinks hidden-print" aria-label="Document ID" href="Ecomm/ViewEdocs.aspx?ID=uhJ1x784NcaNrVVzKW0vYslV1nQ3hIRYmXLxbQq33tyshCGyHbOIapchVlNHL/s6sP+5f245ruOERRUrUYOrpDvAZFR42jcGUshFcX0WcMX/1Ds0ACEkxbDF0eRUp5DOJADJWKC/sJ23XH2yH6W4IJrWYGJEcqPrcIUgkyRWqCByEnW0a9EhaaoRk0ocHKwK" target="_blank">View</a>
<a id="ctl00_ContentPlaceHolder1_gridViewEvents_ctl15_gridViewEventDocs_ctl03_HyperLinkFCECLegacy" class="doclinks hidden-print" aria-label="Document ID" href="Ecomm/ViewEdocs.aspx?ID=KMjX55lU5BVhR9pieAD4vZ1FGtwzRAaZfXZY4CPE4p5XSrA4rq/HgZJGXPnI2Kl2vx8vyKEZmh2chQz0Pw13X2YMFwRVg83JzCI/gTQFB1L+NKDaHm2c8Cxjs9UzF5U7u5jq9KLxemMKWMSqI+IaUv0wdeuSsaS2LMFBPnmYClZmdrCp955OJux9WvsrcJH9" target="_blank"></a>
</td>
</tr>
下面是一些我一直在尝试但没有成功的代码:
path = driver.find_element(By.XPATH, '//td[contains(text(), "DOD")]/following-sibling::td/div/table/tbody/*/*/span[contains(text(), "app")]/parent::*/td[5]/a').click()
提前致谢!
将 <td>
元素的文本标识为 DOD 并找到相应的 <span>
文本为App 然后点击相关的 <a>
标签,文本为 View 你需要诱导 WebDriverWait for the
使用 XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td[starts-with(., 'DOD')]//following-sibling::td[.//span[starts-with(., 'App')]]//following-sibling::td[.//a[text()='View']]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC