【问题标题】:How can I set a variable to the activeElement?如何将变量设置为 activeElement?
【发布时间】:2015-06-17 10:32:52
【问题描述】:

我将一个字符串设置为 activeElement.value,一切正常。现在我想为 activeElement.value 设置一个变量,我得到以下错误代码:

线程“主”org.openqa.selenium.WebDriverException 中的异常: 未定义患者 ID 命令持续时间或超时:66 毫秒 构建信息:版本:'2.45.0',修订:'5017cb8',时间:'2015-02-26 23:59:50' 系统信息:主机:'MALTE',ip:'169.254.239.149',os.name: 'Windows 7',os.arch:'x86',os.version:'6.1',java.version: '1.8.0_40' 驱动信息:org.openqa.selenium.firefox.FirefoxDriver 功能 [{applicationCacheEnabled=true, rotatable=false, handleAlerts=true,databaseEnabled=true,版本=37.0.1, 平台=WINDOWS,nativeEvents=false,acceptSslCerts=true, webStorageEnabled=true,locationContextEnabled=true, browserName=firefox,takeScreenshot=true,javascriptEnabled=true, cssSelectorsEnabled=true}] 会话 ID: 9816aed6-75f7-48e2-90c5-4c018efd0af9 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(未知 来源)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 来源)在 java.lang.reflect.Constructor.newInstance(未知来源) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599) 在 org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:508) 在 defaultPackage.DataCapture.SelectExistingPatientByID(DataCapture.java:179) 在 defaultPackage.DataCapture.main(DataCapture.java:50) 引起: org.openqa.selenium.WebDriverException:未定义患者 ID

带变量的代码(不工作):

String patientID;
patientID = "n1n3";
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("document.activeElement.value = patientID;");

带字符串的代码部分(工作):

   jse.executeScript("document.activeElement.value = 'n1n3';");

感谢您的帮助!

【问题讨论】:

    标签: java javascript selenium


    【解决方案1】:

    您传递的是值而不是变量。请参阅下面的答案。

        String patientID;
        patientID = "n1n3";
        JavascriptExecutor jse = (JavascriptExecutor)driver;
        jse.executeScript("document.activeElement.value = '" + patientID + "';");
    

    【讨论】:

    • 是的,这更有意义!非常感谢! :)
    • 很高兴这是您想要的解决方案。愿意接受答案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2013-09-01
    • 2011-06-09
    • 1970-01-01
    • 2016-03-28
    • 2020-08-07
    • 2012-09-05
    相关资源
    最近更新 更多