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"}
下次请更正确地编辑你的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