我正在使用Java和Selenium测试Web应用程序。我试图在页面上单击一个按钮,该页面上存在两个具有相同类名和文本的按钮。因此,我先找到父元素,然后在其子元素中寻找我的按钮。我正在执行以下操作,并得到了意外的结果。
public static List<WebElement> findSubElementsUsingHtmlXpathClass(String htmlElement,
String className, WebElement parent) {
String xPathString="//" + htmlElement + "[contains(@class, '" + className + "')]";
List<WebElement> elements = parent.findElements(By.xpath(xPathString));
return elements;
}
这将返回不属于父元素的元素。
这是我打电话给的地方:
String htmlElement = "div";
String className = "tabs-container";
List<WebElement> elements = Common.findElementsUsingHtmlXpathClass(driver, htmlElement, className);
Common.myPrint(thisClass + " no of elements found: " + elements.size());
for (WebElement element : elements) {
// outerHTML: <input class="form-control btn btn-info" value="Create item"
// type="button">
// inner:
String htmlElement2 = "input";
String className2 = "form-control btn btn-info";
String textToFind = "Create item";
List<WebElement> subElements = Common.findSubElementsUsingHtmlXpathClass(htmlElement2, className2,
element);HTML
我想念什么吗?
通过忽略返回的第一个元素,我已经能够解决此问题,但这只能在这种特定情况下得到保证。
万千封印
相关分类