Cha*_*man 10 java selenium xpath selenium-webdriver appium
我试图通过其完整路径(wholeElement)找到一个元素,并首先找到更高级别的元素,然后在该元素中找到更低级别的元素(modularElement).这是我的代码:
WebElement modularElement = appDriver.findElement(By.xpath("//UIATableCell[2]")).findElement(By.xpath("//UIAStaticText[4]"));
WebElement wholeElement = appDriver.findElement(By.xpath("//UIATableCell[2]/UIAStaticText[4]"));
Logger.LogMessage("modularElement attribute1: " + modularElement.getLocation(), Priority.High);
Logger.LogMessage("wholeElement attribute1: " + wholeElement.getLocation(), Priority.High);
Run Code Online (Sandbox Code Playgroud)
我遇到的真正奇怪的问题是两个元素(模块化和整体)是不同的元素而不是相同的元素(由上面代码中打印的不同位置显示).任何人都可以解释为什么会这样吗?
谢谢.
更新:
我也尝试使用.//但是仍然提供相同的问题:
WebElement modularElement = appDriver.findElement(By.xpath("//UIATableCell[2]")).findElement(By.xpath(".//UIAStaticText[4]"));
Run Code Online (Sandbox Code Playgroud)
他们不一样.
appDriver.findElement(By.xpath("//UIATableCell[2]")).findElement(By.xpath("//UIAStaticText[4]"));
Run Code Online (Sandbox Code Playgroud)
在这里,您要搜索整个DOM树中任何//UIAStaticText[4]位置的任何位置:
使用xpath时请注意webdriver遵循标准约定:以"//"为前缀的搜索将搜索整个文档,而不仅仅是当前节点的子节点.使用".//"将搜索范围限制为此WebElement的子项.
尽管//UIATableCell[2]/UIAStaticText[4]将搜索的直接孩子中的//UIATableCell[2]唯一.