gpt4 book ai didi

java - 调用具有 javascript 函数的方法时的强制转换问题

转载 作者:行者123 更新时间:2023-12-02 02:08:42 25 4
gpt4 key购买 nike

当我从另一个包含 javascript 函数的类调用该方法时,我的测试类失败了。

选角时出现问题。下面给出了来自单独类的 java 脚本方法

public long javatimeout(WebDriver driver)
{
JavascriptExecutor js = (JavascriptExecutor) driver;
long loadTime = (long) js.executeScript(
"return (window.performance.timing.loadEventEnd - window.performance.timing.navigationStart) / 1000");
System.out.println("Screen Loading time is " +loadTime);
return loadTime;

}

在测试类中,在登录方法中调用“javatimeout”方法。

`public class TC01login {

WebDriver driver;
WebDriverWait wait;

Commonclass obj1 = new Commonclass();

public void login()
{
driver.get("https://staging.agshealth.com/NexGenQMS/#/upload");

long timetaken = obj1.javatimeout(driver);
System.out.println(timetaken);
}`

失败:登录java.lang.ClassCastException:java.base/java.lang.Double 无法转换为 java.base/java.lang.Long

最佳答案

您对 (long) 的转换有误。

根据文档,当从 javascript 代码返回十进制值时,JavascriptExecutor 返回一个 Double:

https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/JavascriptExecutor.html

当 JavaScript 代码返回非十进制值时,将返回 long。

关于java - 调用具有 javascript 函数的方法时的强制转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50331241/

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