问题是当我们从 C# 代码调用函数时获取当前 webElement 的 clientHeight 和scrollHeight,如下所示,
注意:我们的应用程序中没有任何 id,并且从 xpath 访问了这些 webElement。
((IJavaScriptExecutor)driver)?.ExecuteScript("return
helper.getDimensions();",webElement);
在 JavaScript 函数中,
var helper={
getDimensions = function(){
return '{webElementViewPortHeight:'+arguments[0].clientHeight}'
}
}
如果我们像下面的语句一样传递,我将获得当前 webElement 的 clientHeight,
((IJavaScriptExecutor)driver)?.ExecuteScript("return '
{webElementViewPortHeight:'+arguments[0].clientHeight}'",webElement);
当我们调用函数时,我期望得到 webElement 的值。
最佳答案
WebElement 的相关 HTML 将帮助我们构建规范的答案。但是您可以使用以下解决方案:
检索clientHeight :
Console.WriteLine((string)((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].clientHeight;", new WebDriverWait(driver, 20).until(ExpectedConditions.ElementIsVisible(By.Id("element_id")))));
检索scrollHeight :
Console.WriteLine((string)((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].scrollHeight;", new WebDriverWait(driver, 20).until(ExpectedConditions.ElementIsVisible(By.Id("element_id")))));
Java 工作示例
当针对 Google Home Page 上的文本框执行脚本时:
代码块:
public class A_demo { public static void main(String[] args) throws Exception { System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("start-maximized"); options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation")); options.setExperimentalOption("useAutomationExtension", false); WebDriver driver = new ChromeDriver(options); driver.get("https://www.google.com/"); System.out.println("Client Height is: "+((JavascriptExecutor)driver).executeScript("return arguments[0].clientHeight;", new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.name("q")))).toString()); System.out.println("Scroll Height is: "+((JavascriptExecutor)driver).executeScript("return arguments[0].scrollHeight;", new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.name("q")))).toString()); } }
控制台输出:
Client Height is: 34 Scroll Height is: 34
关于javascript - 如何通过javascript函数获取当前web元素的clientHeight和scrollHeight?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57709271/