【问题标题】:Click a button with XPath containing partial id and title in Selenium IDE在 Selenium IDE 中单击包含部分 id 和标题的 XPath 按钮
【发布时间】:2013-04-02 13:54:51
【问题描述】:

使用 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>

我是在错误地构造它吗?它不工作!

【问题讨论】:

  • 分享该按钮的 HTML
  • 如果您可以在此处格式化代码,并合理注意编写问题以使其尽可能易读,我们通常会感谢您的努力。
  • 这就是我试图点击的按钮示例的整个 html 代码 - 谢谢,Mike
  • 关于成为一个可读的 Q 的好处! - 我应该说的是,当我使用上述 xpath 执行“click”或“clickAt”命令时 - 响应是“未找到”
  • 标签: xpath selenium selenium-ide


    【解决方案1】:

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

    你有:

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

    翻译成:

    给我所有具有包含ctl00_btnAircraftMapCellID 的元素。在这些元素中,获取 任何 个具有包含 Select Seattitle 的子元素。

    实际上想要的是:

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

    翻译成:

    获取所有具有bothanchor元素:一个包含ctl00_btnAircraftMapCellid和一个包含title Select Seat.

    【讨论】:

    • 这很可能是关于堆栈溢出的最佳解释答案!我从来不知道你可以像在 xpath 表达式中那样使用“and”,谢谢
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签