我正在尝试使用通配符在 selenium 中向上导航 DOM,使用类似这样的东西......
ArrayList<WebElement> list = (ArrayList<WebElement>) driver.findElements(By.xpath("//div[contains(text(),'div_text')]/parent::*]"));
尝试获取具有“div_text”的 div 的所有父元素。这似乎只返回直接父母,而不是所有父母。我需要在 DOM 上增加可变数量的节点。
获得列表后,我计划使用
for(WebElement e: list)
if(e.getTagName().equals("table") && e.getAttribute("class").equals("blah")
e.click();
同意这不是最有效的方法,而是更复杂的 xpath 表达式,例如
driver.findElements(By.xpath("//div[text()='title']/[name(parent::*) = 'table'"));
似乎在网络驱动程序中不起作用。
感谢您对此的任何见解。