Selenium WebDriver c#无法通过FindElement(by.xpath)找到元素

本文关键字:xpath by 元素 FindElement WebDriver Selenium | 更新日期: 2023-09-27 18:16:53

我想在下表中找到元素<td>!!mmm region test !!mmm region test</td>

...
<div class="panel-body cim-padding-zero">
   <div class="row">
      <div class="col-md-12">
         <section id="UserListArea">
            <div class="jtable-main-container">
               ...
<table class="jtable">
    ...
    <tbody>
        <tr class="jtable-data-row jtable-row-even Pointer" data-record-key="88">
            <td></td>
        </tr>
        <tr class="jtable-data-row Pointer" data-record-key="301">
            <td></td>
        </tr>
        <tr class="jtable-data-row jtable-row-even Pointer" data-record-key="302">
            <td></td>
        </tr>
        <tr class="jtable-data-row Pointer" data-record-key="524">
            <td></td>
        </tr>
        <tr class="jtable-data-row jtable-row-even Pointer jtable-row-selected" data-record-key="651">
            <td>!!mmm region test !!mmm region test</td>
        </tr>
        ...
    </tbody>
</table>        
...

我已经试过了

IWebElement UserList = driver.FindElement(By.XPath("//section[@id='UserListArea']/div/table/tbody/tr[5]/td"));

IWebElement UserList = driver.FindElement(By.XPath("//*[@id='UserListArea']/div/table/tbody/tr[5]/td"));

但每次我都得到错误

OpenQA.Selenium。NoSuchElementException:无法定位元素{"方法":"xpath","选择器":"[@ id = ' UserListArea ']//部分/div/表/身体/tr [5]/td"}

Selenium WebDriver c#无法通过FindElement(by.xpath)找到元素

下次请更正确地编辑你的HTML。

读起来很不舒服
//tr[@data-record-key="651"]/td

您可以尝试下面的Xpath:-

//*[@id='UserListArea']/div/table/tbody/tr[5]/td[contains(.,'!!mmm region test !!mmm region test')]

//*[@id='UserListArea']//tr[@data-record-key='651']/td

//tr[@class='jtable-data-row jtable-row-even Pointer jtable-row-selected']/td

如果仍然显示NoSuchElementException,然后检查是否有任何框架存在。如果frame存在,那么你需要切换到frame first