Xpath Selenium:在searchContext中查找元素
各位!! 我遇到了以下问题: 有一些Xpath Selenium:在searchContext中查找元素,xpath,selenium,webdriver,Xpath,Selenium,Webdriver,各位!! 我遇到了以下问题: 有一些 SearchContext searchContext; By by; 可以是WebDriver或WebElement。 假设它们都已初始化(我们不知道如何初始化); 现在我们想要找到具有这种xpath的元素,似乎要做以下工作 List<WebElement> elements = searchContext.findElements(by); 这行不通!(找不到任何元素),因为我们需要 by = By.xpath("./div"); (见
SearchContext searchContext;
By by;
可以是WebDriver或WebElement。
假设它们都已初始化(我们不知道如何初始化);
现在我们想要找到具有这种xpath的元素,似乎要做以下工作
List<WebElement> elements = searchContext.findElements(by);
这行不通!(找不到任何元素),因为我们需要
by = By.xpath("./div");
(见附件)
但是,正如我所提到的,我们对by是如何初始化的一无所知
因此,我的问题是:尽管存在上述问题,是否有任何方法可以正确地找到元素?
我有两个变量:by和searchContext,我应该在searchContext中查找指定的元素。您可以在某个助手方法中执行此操作,如果发生这种情况,该方法将引发异常
public List<WebElement> returnSearchContext(By by, SearchContext searchContext){
List<WebElement> elements = searchContext.findElements(by);
if (elements.getSize()>0){
return elements;}
else{
throw new ElementNotFoundException();
}
}
public List returnSearchContext(By,SearchContext SearchContext){
List elements=searchContext.findElements(按);
if(elements.getSize()>0){
返回元素;}
否则{
抛出新元素NotFoundException();
}
}
我写这篇文章时没有访问任何IDE,所以我可能会在示例代码中出错。例如,我认为异常需要一些参数。但我希望您能明白这一点。您可以通过一些助手方法来完成,如果发生这种情况,该方法将抛出异常
public List<WebElement> returnSearchContext(By by, SearchContext searchContext){
List<WebElement> elements = searchContext.findElements(by);
if (elements.getSize()>0){
return elements;}
else{
throw new ElementNotFoundException();
}
}
public List returnSearchContext(By,SearchContext SearchContext){
List elements=searchContext.findElements(按);
if(elements.getSize()>0){
返回元素;}
否则{
抛出新元素NotFoundException();
}
}
我写这篇文章时没有访问任何IDE,所以我可能会在示例代码中出错。例如,我认为异常需要一些参数。但我希望你能明白。据我所知,现在有办法做到这一点。 唯一的方法是正确地手动指定By.xpath:
By child = By.xpath("/div");
By descendant = By.xpath("//div");
对于WebDriver.isAssignableFrom(searchCOntext.getCLass()),
及
对于WebElement.isAssignableFrom(searchCOntext.getCLass())。
依我看,这很糟糕。据我所知,现在有办法做到这一点。 唯一的方法是正确地手动指定By.xpath:
By child = By.xpath("/div");
By descendant = By.xpath("//div");
对于WebDriver.isAssignableFrom(searchCOntext.getCLass()),
及
对于WebElement.isAssignableFrom(searchCOntext.getCLass())。
哦,太糟糕了。谢谢你的回复!=)不幸的是,这并不能解决问题,它只是一种处理失败的方法。这是我的错——我的问题表述不够清楚。我让它更具体。愚蠢的我:)问题只是“那么容易”吗?意思-当搜索上下文为WebElement时,您真的需要查找唯一的子DIV吗?还是很复杂?谢谢您的回复!=)不幸的是,这并不能解决问题,它只是一种处理失败的方法。这是我的错——我的问题表述不够清楚。我让它更具体。愚蠢的我:)问题只是“那么容易”吗?意思-当搜索上下文是WebElement时,您真的需要查找唯一的子DIV,还是很复杂?