selenium web驱动程序-替代getEval

selenium web驱动程序-替代getEval,selenium,selenium-webdriver,Selenium,Selenium Webdriver,硒化物 storeEval |/\d*$/.exec(storedVars['myLocation'])| qid 我正在使用的Selenium webdriver代码: 字符串qid=(字符串)((JavascriptExecutor)driver.executeScript(“/\d*$/.exec(storedVars['myLocation'])”) 在执行jUnit代码时,我得到一个错误。上面的Javascript执行器语句正确吗 错误: org.openqa.selenium.Web

硒化物

storeEval |/\d*$/.exec(storedVars['myLocation'])| qid

我正在使用的Selenium webdriver代码:

字符串qid=(字符串)((JavascriptExecutor)driver.executeScript(“/\d*$/.exec(storedVars['myLocation'])”)

在执行jUnit代码时,我得到一个错误。上面的Javascript执行器语句正确吗

错误:

org.openqa.selenium.WebDriverException:null(警告:服务器未提供任何堆栈跟踪信息)
命令持续时间或超时:1.23秒
生成信息:版本:“2.20.0”,修订版:“16008”,时间:“2012-02-27 19:03:59”
系统信息:os.name:'Windows 7',os.arch:'x86',os.version:'6.1',java.version:'1.6.031'
驱动程序信息:Driver.version:RemoteWebDriver
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:170)
位于org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:123)
位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:438)
位于org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:353)
在com.ui.tests.CreateNewTrait.testCreateNewTrait(CreateNewTrait.java:211)上
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于org.junit.runners.model.FrameworkMethod$1.runReflectVeCall(FrameworkMethod.java:45)
位于org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
位于org.junit.runners.model.FrameworkMethod.invokeeexplosive(FrameworkMethod.java:42)
位于org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
位于org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
位于org.junit.internal.runners.statements.runafter.evaluate(runafter.java:30)
位于org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
位于org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
位于org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
位于org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
位于org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
位于org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
访问org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
位于org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
位于org.junit.runners.ParentRunner.run(ParentRunner.java:300)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
位于org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

谢谢

您的javascript看起来不正确。如果您只想从当前页面url中取出最后的数字,那么您应该尝试使用driver.getCurrentURL获取url,并使用java模式匹配器,而不是使用javscript执行器。在IDE中,没有提供执行字符串、数学或逻辑函数的功能,因此使用了javascript。但是使用webdriver或rc时,您可以使用java功能:)

希望能有所帮助。

你想实现什么目标?驱动程序初始化了吗?是,驱动程序初始化了。在执行JavaExecutor语句之前,整个程序运行良好。对于上面的IDE语句,我将测试用例导出为webdriver(JUnit4)。但storeEval语句未转换为JUnit语句。因此,我试图为上面的storeEval命令编写代码。谢谢,我知道。但是该命令应该做什么呢?该命令应该从存储在myLocation变量中的当前页面URL中选择所有最后的数字。