在Selenium IDE中单击包含部分ID和标题的XPath的按钮

Mik*_*keH 21 selenium xpath selenium-ide

使用Selenium IDE,我试图使用带有部分ID和元素标题的XPath单击网页表格中的按钮.我正在使用的XPath是:

xpath=//*[contains(@id, 'ctl00_btnAircraftMapCell')]//*[contains(@title, 'Select Seat')] 
Run Code Online (Sandbox Code Playgroud)

这就是我试图点击的按钮示例的整个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>
Run Code Online (Sandbox Code Playgroud)

我错误地构建了这个吗?它不起作用!

Arr*_*ran 53

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

你有:

//*[contains(@id, 'ctl00_btnAircraftMapCell')]//*[contains(@title, 'Select Seat')]
Run Code Online (Sandbox Code Playgroud)

这转化为:

获取包含该元素的所有元素.在这些元素中,让任何有一个子元素包含.IDctl00_btnAircraftMapCelltitleSelect Seat

真正想要的是:

//a[contains(@id, 'ctl00_btnAircraftMapCell') and contains(@title, 'Select Seat')]
Run Code Online (Sandbox Code Playgroud)

这转化为:

给我所有有元素:一个id包含ctl00_btnAircraftMapCelltitle包含Select Seat.

  • 这很可能是堆栈溢出的最佳解释答案!我从来不知道你可以像在xpath表达式中那样使用"和",谢谢你 (2认同)