【发布时间】:2020-07-03 16:47:37
【问题描述】:
我相信我遇到了与问题 Python & Selenium Clicking on td value in a row based on another td in the same row 类似的问题
表格布局(为了清楚起见,我删除了我不感兴趣的列数据):
<tbody>
<tr class="FontWeightBold">
<td>Title ID</td>
<td>Primary Author Last Name</td>
<td>Title: Edition</td>
<td>Draft Due</td>
<td>Final Due</td>
<td>Est. Trans. Date</td>
<td>Target Pub. Date</td>
<td><td>
<td><td>
</tr>
<tr>
<td>
<span id="SmartMasterContent_TitleProposalContent_dgProposals_lBookID_0">T276065</span>
</td>
<td>..</td>
<td>..</td>
<td>..</td>
<td>..</td>
<td>..</td>
<td>..</td>
<td>
<a id="SmartMasterContent_TitleProposalContent_dgProposals_lbAccept_0" href="javascript:__doPostBack('ctl00$ctl00$SmartMasterContent$TitleProposalContent$dgProposals$ctl02$lbAccept','')">Request ISBN</a>
</td>
<td>..</td>
</tr>
<tr>
<td>
<span id="SmartMasterContent_TitleProposalContent_dgProposals_lBookID_1">T276066</span>
</td>
<td>..</td>
<td>..</td>
<td>..</td>
<td>..</td>
<td>..</td>
<td>..</td>
<td>
<a id="SmartMasterContent_TitleProposalContent_dgProposals_lbAccept_1" href="javascript:__doPostBack('ctl00$ctl00$SmartMasterContent$TitleProposalContent$dgProposals$ctl03$lbAccept','')">Request ISBN</a>
</td>
<td>..</td>
</tr>
示例问题。我想点击标题 ID(第一列)为“T276066”的表格行的“请求 ISBN”链接。
我遇到的一个问题是链接的 id 将附加行号,而我正在查看的记录可能位于表格上的任何位置。
我的 Python 代码 sn-p
Request_ISBN = driver.find_element_by_xpath('//a[text()="T276066"]/parent::td/preceding-sibling::td/a[text() = "Request ISBN"]')
为了尝试减少可能产生错误的区域,我已将 Title ID 硬编码到 XPath 中,但是一旦代码工作,它将被替换为变量。
xpath 代码应该是什么?
【问题讨论】:
标签: python python-3.x selenium