我在Python中使用Selenium Webdriver并遇到了无法找到元素的问题。我试图在表格中选择h2元素(或其中包含div):
<table class="TabStrip" cellspacing="0" cellpadding="0" border="0" style="padding-top: 0px;">
<tbody>
<tr>
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<td style="white-space: nowrap;vertical-align:bottom;">
<div class="TabInactive"> </div>
<div class="TabNotSelected" onmouseout="previousSibling.className='TabInactive'" onmouseover="previousSibling.className='TabActiveRIA'" tabindex="10" onblur="blurTab(event);" onfocus="focusTab(event);" onkeydown="postBackOnEnter(event, 'b$_tab-flexiKB01P112', null, '1', 'TAB|b$_tab-flexiKB01P112');" onclick="postBackOnEnter(event, 'b$_tab-flexiKB01P112', null, '0', 'TAB|b$_tab-flexiKB01P112');" data-name="b$_tab-flexiKB01P112" style="white-space: nowrap" role="tab" aria -expanded="false">
<h2 class="PageTabTitleNotSelected">Workflow Approval</h2>
</div>
</td>
<td class="TabFiller" style="width:100%;"> </td>
</tr>
</tbody>
</table>
如果我使用:
row = wait.until(ec.presence_of_element_located(
(By.XPATH, '//table[@class="TabStrip"]/tbody/tr[1]')))
选择行,一切正常。但是一旦我尝试添加单元格:
cell = wait.until(ec.presence_of_element_located(
(By.XPATH, '//table[@class="TabStrip"]/tbody/tr[1]/td[15]')))
或其中的任何内容,我得到超时并且找不到元素。
我在浏览器中清楚地看到我之后的内容。关于我可能出错的地方的任何想法?
修改
使用以下方法在Selenium IDE中一切正常:
<tr>
<td>clickAndWait</td>
<td>//td[15]/div[2]</td>
<td></td>
</tr>