当url被传递到地址栏后,Firefox崩溃了



我在J meter中面临Web驱动程序采样器的问题。我在web驱动采样器中编写了一个简单的代码,其中我给出了一个url并传递了一些凭据来登录。

当我运行测试…浏览器被调用,url被传递到地址栏,然后浏览器关闭或崩溃。有时浏览器在输入密码后会崩溃。请看看下面的代码,让我知道如果我错过了什么。

代码。var pkg=JavaImporter(org.openqa.selenium)//导入java selenium包var support_ui = JavaImporter (org.openqa.selenium.support.ui.WebDriverWait)var ui = JavaImporter (org.openqa.selenium.support.ui)var wait=new support_ui.WebDriverWait(WDS.browser,20000)WDS.sampleResult.sampleStart ()

  WDS.browser.get('https://web2qa.westlaw.com/signon/default.wl?bhcp=1&fn=_top&newdoor=true&rs=WLW14.07&vr=2.0') 
 var Onepass=WDS.browser.findElement(pkg.By.id('OnePassHeaderLink')) 
 Onepass.click()
 var usernameField = WDS.browser.findElement(pkg.By.id('pwd')) 
 usernameField.sendKeys(['pwd1']) 
  var passwordField = WDS.browser.findElement(pkg.By.id('clientid')) 
 passwordField.sendKeys(['pwd2']) 
 var loginButton=WDS.browser.findElement(pkg.By.id('login_submit')) 
 loginButton.click()
 WDS.log.info(WDS.name + ' has logged an entry') 
 WDS.sampleResult.sampleEnd()

1。我确实减少了超时时间,但问题仍然存在。2.我已经添加了你提到的代码,即使在用户名字段和密码字段仍然浏览器崩溃一旦页面加载。3.请看下面的截图和错误日志。

错误日志:jmeter.threads.JMeterThread:按正向顺序运行PostProcessorsjmeter.threads.ThreadGroup:已启动的线程组编号为12014-07-22 01:27:56 INFO - jmeter.engine.StandardJMeterEngine:所有线程组已经启动2014/07/22 01:27:56 INFO - jmeter.threads.JMeterThread:线程启动:线程组1-12014-07-22 01:28:09 INFO - com. googlcode .jmeter.plugins.webdriver.config. webdriverconfig: iterationStart()当前线程名称:'线程组1-1',浏览器:'FirefoxDriver: firefox on XP (098965b0-fea8-4428-9e6e-76d1385cecc2)'2014/07/22 01:28:22 ERROR - com.googlecode.jmeter.plugins.webdriver.sampler.WebDriverSampler: sun.org.mozilla.javascript.internal.WrappedException: Wrapped org. openqa.seleniem . nosuchelementexception:无法定位元素:{"method":"id","selector":"login_submit"}命令持续时间或超时时间:32毫秒有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.htmlBuild info: version: '2.34.0', revision: '11cd0ef93615408e0b6b3bfa28defe125906461a',时间:'2013-08-06 11:43:14'系统信息:os.name: 'Windows 2003', os.name: 'Windows 2003'。Arch: 'x86', os。版本:'5.2',java。版本:"1.6.0_37"会话ID: 098965b0-fea8-4428-9e6e-76d1385cecc2驱动信息:org.openqa.selenium.firefox.FirefoxDriver功能[{platform=XP, acceptSslCerts=true, javascriptEnabled=true, browserName=firefox, rotatable=false, locationContextEnabled=true, version=16.0.2, cssSelectorsEnabled=true, databaseEnabled=true, handlesAlerts=true, browserConnectionEnabled=true, nativeEvents=true, webStorageEnabled=true, applicationCacheEnabled=true, takesScreenshot=true}](#18)在第18行jmeter.threads.JMeterThread:线程已完成:线程组1-12014-07-22 01:28:22 INFO - jmeter.engine.StandardJMeterEngine:通知测试监听器测试结束2014-07-22 01:28:22 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,local)

第一个WebDriverWait(WDS.browser,20000)

你确定20000秒是等待元素出现的正确超时吗?是5.5小时。如果你需要20秒,那就写上20。

第二:

元素不能在browser.get请求后立即加载。例如,如果一个元素是用AJAX加载的,它可能需要一些额外的时间才能出现在DOM中,并且WebDriver可以与它交互。

所以我建议这样写:

WDS.browser.get('https://web2qa.westlaw.com/signon/default.wl?bhcp=1&fn=_top&newdoor=true&rs=WLW14.07&vr=2.0') 
wait.until(ui.ExpectedConditions.presenceOfElementLocated(pkg.By.id('OnePassHeaderLink')))
var Onepass=WDS.browser.findElement(pkg.By.id('OnePassHeaderLink')) 
Onepass.click()

同样适用于usernameField, passwordField

第三:如果您仍然遇到任何问题,请添加查看结果树侦听器或检查jmeter.log文件,以找出测试失败的原因,并使用错误消息更新您的问题,因为堆栈溢出社区不足以心灵感应,无法猜测您的测试出了什么问题。

参见使用Selenium with JMeter的WebDriver Sampler指南,了解如何使用WebDriver Sampler的更多细节。

最新更新