22

使用 Selenium IDE,我正在尝试使用带有部分 id 和元素标题的 XPath 在网页上的表格中单击一个按钮。我使用的 XPath 是:

xpath=//*[contains(@id, 'ctl00_btnAircraftMapCell')]//*[contains(@title, 'Select Seat')] 

这就是我试图单击的按钮示例的整个 html 代码:

<li id="ctl00_MainContent_repAircraftMap_ctl20_repAircraftMapRow‌​_ctl00_liAircraftMap‌​Cell" class=""> 
    <a id="ctl00_MainContent_repAircraftMap_ctl20_repAircraftMapRow‌​_ctl00_btnAircraftMa‌​pCell" href="javascript:void(0)" seatnumber="20A" mapbindattribute="1124" title="Select Seat 20A" onclick="SeatClick(1124);"></a> 
</li>

我构造不正确吗?它不工作!

4

1 回答 1

59

现在您已经提供了 HTML 示例,我们可以看到您的 XPath 有点错误。虽然它是有效的 XPath,但它在逻辑上是错误的。

你有:

//*[contains(@id, 'ctl00_btnAircraftMapCell')]//*[contains(@title, 'Select Seat')]

翻译成:

给我所有具有ID包含的元素ctl00_btnAircraftMapCell。在这些元素中,获取任何具有title包含的子元素Select Seat

真正想要的是:

//a[contains(@id, 'ctl00_btnAircraftMapCell') and contains(@title, 'Select Seat')]

翻译成:

获取所有同时具有的元素:一个包含和一个包含。idctl00_btnAircraftMapCelltitleSelect Seat

于 2013-04-11T08:29:13.367 回答