gpt4 book ai didi

java - 您可以将 WebElement 转换为 WebDriver 吗?

转载 作者:行者123 更新时间:2023-12-03 23:24:58 34 4
gpt4 key购买 nike

我想使用 WebElement 作为根来查找元素而不是驱动程序。我知道这是可能的,因为 WebElement 和 WebDriver 都扩展了 SearchContext 类。但我希望能够进行这样的搜索。

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,而无需执行 if 语句或在我想要获取元素时使用两种不同的方法。因为有时我想使用 WebDriver 作为根,有时想使用 Webelement,而无需更改获取代码的任何内容。有可能吗?是的,我知道这可能不是最佳实践,只是想知道是否可能。

最佳答案

使用 OpenQA.Selenium.Support.UI;

如果元素是 的类型ISearchContext IWebElement

然后这个 Actor 对我有用

var driver = ((IWrapsDriver)element).WrappedDriver;

关于java - 您可以将 WebElement 转换为 WebDriver 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28413307/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com