【问题标题】:In Selenium using Ruby, how would I select this updated element's text using xpath?在使用 Ruby 的 Selenium 中,如何使用 xpath 选择此更新元素的文本?
【发布时间】:2012-10-09 09:48:58
【问题描述】:

我想选择“updatedOn_1756”中的文本,它通常会返回“10:12 PM”之类的内容。我该怎么做?我认为它会类似于 element = driver.find_element(:id, "updatedOnID"),但这不起作用。顺便说一句,我正在使用 Firefox。

编辑:我相信页面是动态更新的。尽管此处显示的源代码中没有文本,但页面上显示了一个时间(当我单击“查看源代码”时,它不会显示在页面源代码中)。

        <tr id='row_for_1756'  >
            <td class="IDClass">1756</td>
            <td>Jameson</td>
            <td><a id='DrinkName_1756' class="linkToClient" title="Launch Live Viewer" href='/client/Client.application?myid=1756'>Stevens 18</a> - 
                <a title="BETA Client" href='/client/Client.application?bell=1756' style="color: green; font-weight: bold;">(BETA VERSION)</a> - <a id='DrinkName_Old_1756' class="linkToClient" title="Version before" href='/client/blank/Client.application?myid=1756' style="color: Red;">(old version)</a></td>
            <td>9980</td>
            <td><span id='updatedOn_1756' class="updatedOnID"></span></td>
            <td><span id='histUpdatedOn_1756' class="updatedOnID"></span></td>
        </tr>

【问题讨论】:

  • 示例中该元素的文本为空。
  • 有什么方法可以访问它吗?在页面上,正如它在浏览器中显示的那样,显示了一个时间,尽管它在此处的页面源中不可见。

标签: ruby selenium-webdriver


【解决方案1】:

它不起作用的原因是因为您要求的id 的值为updatedOnID,但它不存在。有一个具有该值的 class,但由于您要查找 id,因此您需要整个 ID 值,包括数字:

driver.find_element(:id, "updatedOn_1756")

【讨论】:

  • 谢谢。这是我一直在寻找的答案。作为记录,我使用 element = driver.find_element(:id, "updatedOn_1756"), puts element.text 得到了我想要的文本
猜你喜欢
  • 1970-01-01
  • 2019-04-24
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
  • 2013-07-29
  • 2014-11-02
  • 2020-05-08
  • 1970-01-01
相关资源
最近更新 更多