0

这是我的表结构:

<form id="tableSection" enctype="application/x-www-form-urlencoded" action="/c4i-web-ABCDE/secured/user/users.xhtml" method="post" name="tableSection">
   <input type="hidden" value="tableSection" name="tableSection">
 <div class="clearfix">
 <div id="tableSection:dataTableWrapped" class="ui-datatable ui-widget has-3-cols c4i-ui-dataTable ui-datatable-resizable">
     <table role="grid">
         <thead>
         <tfoot>
         <tbody id="tableSection:dataTableWrapped_data" class="ui-datatable-data ui-widget-content">
              <tr class="ui-widget-content ui-datatable-even" aria-selected="false" role="row" data-rk="7c6c1565-4e8a-456a-8d89-30e2c93be5c3" data-ri="0" style="cursor: pointer;">
                  <td class="ac" role="gridcell" style="width: 350px;">
                       <div class="ui-dt-c">happy</div>

我已经尝试了以下两种 Xpath:

"//div[@id='tableSection:dataTableWrapped']/tr[td//text()[contains(., 'happy')]]"

"//form[@id='tableSection']/div[@class*='ui-datatable']//td[text()='happy']"

两者都在 Selenium2 中返回 Stale Element 错误:

org.openqa.selenium.StaleElementReferenceException:在缓存中找不到元素 - 页面可能在查找后已更改

找到该行后,我只是启动一个简单的 .click() 命令来选择它。任何帮助表示赞赏!

4

1 回答 1

0

试试这个,虽然它是一个非常松散、低效的表达式:

//form[@id='tableSection']/div[contains(@class, 'ui-datatable')]//td[contains(descendant::*/text(), 'happy') or contains(text(), 'happy']

在此处通过 XSLT 运行的示例。

于 2012-06-22T23:56:29.477 回答