我找到了一些关于这个的答案,但他们没有回答我的问题,所以我正在写一个新问题。
我的 HTML 代码具有以下复选框元素(在浏览器的检查元素中)
<input role="checkbox" type="checkbox" id="jqg_TransactionFormModel501EditCollection2_147354_grid_-1274" class="cbox" name="jqg_TransactionFormModel501EditCollection2_147354_grid_-1274" value="true">
在我的测试用例中,我想使用 Selenium Webdriver 使用其 ID 单击复选框。
这里 Id="jqg_TransactionFormModel 501 EditCollection2_ 147354 grid - 1274 " 是动态的。
在上面的 id 中,粗体和斜体标记的字母(动态)会随着同一页面中不同的复选框以及页面刷新而变化。
粗体标记的字母(动态)只会在页面刷新时更改(通过同一页面中的所有复选框保持不变。)
我应该如何格式化/编写 XPATH 以便我可以使用以下语句单击所需的复选框。
WebElement checkbox = webDriver.findElement(By.id("idOfTheElement"));
if (!checkbox.isSelected()) {
checkbox.click();
}
提前感谢您的帮助..!
您可以使用部分 IDcssSelector
或xpath
webDriver.findElement(By.cssSelector("[id*='TransactionFormModel']"));
webDriver.findElement(By.xpath("//input[contains(@id, 'TransactionFormModel')]"));
您可以替换TransactionFormModel
为 ID 的任何其他固定部分。
作为旁注,不需要两次定位元素。你可以做
WebElement checkbox = webDriver.findElement(By.id("idOfTheElement"));
if (!checkbox.isSelected()) {
checkbox.click();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句