我想使用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代碼改變任何內容。以某種方式可能嗎?是的,我知道這可能不是最佳實踐,只是想知道是否有可能。