我如何定位元素取决于它的价值?

时间:2012-06-28 14:28:39

标签: c# selenium webdriver specflow

我有一些表:

    Title 1        | Title 2        | Title 3        |
    --------------------------------------------------
    string value 1 | string value 2 | string value 3 |
    --------------------------------------------------
    string value 4 | string value 5 | string value 6 |

和一些步骤:
“然后点击它的< name>”,其中<名称>可以是第一栏的任何内容。

那么,我如何找到所需元素并点击它?

表格代码

<div id="grid" class="k-grid k-widget" data-role="grid" tabindex="0" style="">
<div class="k-grid-header" style="padding-right: 17px;">
<div class="k-grid-header-wrap">
<table cellspacing="0">
<colgroup>
<col style="width: 30px;">
<col style="width: 300px;">
<col>
<col style="width: 200px;">
</colgroup>
<thead>
<tr>
<th class="k-header" data-title="ID" data-field="id">ID</th>
<th class="k-header" data-title="Наименование" data-field="name" data-role="sortable" data-dir="asc">
<a class="k-link" href="#">

第二部分

Наименование
<span class="k-icon k-arrow-up"></span>
</a>
</th>
<th class="k-header" data-title="Описание" data-field="description">Описание</th>
<th class="k-header" data-field="undefined" data-role="sortable">
</tr>
</thead>
</table>
</div>
</div>

第3部分

    <div class="k-grid-content">
<table class="k-focusable k-selectable" cellspacing="0" data-role="selectable">
<colgroup>
<col style="width: 30px;">
<col style="width: 300px;">
<col>
<col style="width: 200px;">
</colgroup>
<tbody>
<tr data-uid="72c59bdf-8622-43c6-91bf-7a2a05ca59b1">
<td>5</td>
<td>1</td>
<td>1</td>
<td>
</tr>

第4部分

<tr class="k-alt" data-uid="f8d1ef8c-07b0-4e79-9c42-4c6db2d943d0">
<td>6</td>
<td>1</td>
<td>1</td>
<td>
</tr>
<tr data-uid="241a4a4b-7147-46fe-ad55-f865de4a8285">
<td>8</td>
<td>789</td>
<td>987</td>
<td>
</tr>
<tr class="k-alt" data-uid="73bf8ea7-c4f0-49f9-8e8b-41d88b13212d">
<td>7</td>
<td>test</td>
<td>test</td>
<td>
</tr>

第五

<tr data-uid="63db0ec1-5a5a-40be-9fa0-b467ff2b43d3">
<td>4</td>
<td>Второй процесс</td>
<td>null</td>
<td>
</tr>
<tr class="k-alt" data-uid="68fe2d62-5ccb-472b-b7b9-8ee95159deff">
<td>1</td>
<td>Заявление1</td>
<td>управление заявлениями</td>
<td>
</tr>
</tbody>
</table>
</div>

第六

<div class="k-pager-wrap k-grid-pager" data-role="pager">
<ul class="k-pager k-reset k-numeric">
<li>
<span class="k-state-active">1</span>
</li>
</ul>
</div>
</div>

1 个答案:

答案 0 :(得分:0)

我部分理解你要做的事情。您想要根据文本值单击页面上的元素。要执行此操作,您必须在页面上找到包含要单击的文本的元素。例如 - 如果要使用text =“Mike”单击某个元素 使用以下代码 -

WebElement ele = driver.FindElement(By.Name("Mike"));

现在,您将获得一个WebElement,点击文字“Mike”。

现在 - ele.click();

我想提到的另一件事是您的HTML代码格式不正确(即没有正确的开始和结束标记)。使用格式良好的HTML可以在使用selenium时更轻松地与网页上的元素进行交互。