我想使用WebElement作为根来代替驱动程序查找元素。我知道这是可能的,因为WebElement和WebDriver都扩展了SearchContext类。但我希望能够有一个像这样的搜索。您可以将WebElement转换为WebDriver吗?
WebDriver chromeDriver = new ChromeDriver();
WebDriver driver = chromeDriver;
// Set a new search root
public void setSearchRoot(){
if(i want a element as a root){
this.driver = (WebDriver)this.driver.findElement(By.xpath("PATH"));
}else{
this.driver = chromeDriver;
}
}
//find a element
public void findMyElement(){
this.driver.findElement(By.xpath("PATH"));
}
,而不是像这样
WebDriver driver = new ChromeDriver();
WebDriver rootElement = this.driver.findElement(By.xpath("PATH"));
//find a element
public void findMyElement(){
if(i want a element as a root){
this.rootElement.findElement(By.xpath("PATH"));
}else{
this.driver.findElement(By.xpath("PATH"));
}
}
它看起来有点混乱,但基本上我希望能够设置一个WebElement为出发点,而不是一个webdriver的,而不必如果要做一个声明或有两种不同的方法,只要我想要一个元素。因为有时我想使用WebDriver作为根,有时也使用Webelement,而不必使用get代码改变任何内容。以某种方式可能吗?是的,我知道这可能不是最佳实践,只是想知道是否有可能。