首页 > 解决方案 > 当除innerText之外的所有元素都相同时如何单击按钮

问题描述

嗨,我是自动化测试的新手,并且卡住了单击具有相同类名的按钮。当所有部分的所有类和 id 都相同时,我想单击特定按钮。

<div class="race-category-block">
<div class="info-block race-detail-block">
<a href="organizer-view-race?race=38"><div class="about-race">
<p class="race-name">Vsd</p>
<div class="date-location has-v-line-group">
<span class="has-v-line">28-01-2020 </span>
<span class="has-v-line no-v-line">Chennai</span>
<span style="display:none" id="raceDirectorName">Raajesh</span>
</div>
</div>
</a>
<div class="race-detail-status"></div>
<div class="race-detail-button-block">
<button class="btn btn-outline add-race" data-value="38">Add a race</button>
</div>
</div>
</div>

上面的部分重复了很多次

`这里我想使用Vsd中的文字点击按钮标签“Add a race”中的按钮

. 因为文本只会是唯一的选择,所以在同一页面中会多次使用其他类和 id。

标签: selenium-webdriverxpath

解决方案


您可以将所有具有相同 ID 的元素组成一个数组。

IList<IWebElement> Buttons = driver.FindElements(By.CssSelector("button.btn.btn-outline.add-race"));

在您可以单击其中任何一个按钮后,您可以在控制台中写入调用了多少个按钮,然后您可以稍后再次单击。

Buttons[1].Click();
Buttons[2].Click();

推荐阅读