将url传递到地址栏后,Firefox崩溃

时间:2014-07-21 09:27:26

标签: jmeter jmeter-plugins

我在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.i已经添加了你提到的代码甚至在用户名字段和密码字段中,一旦页面加载,浏览器仍会崩溃。 3.请在下面找到屏幕截图和错误日志。

错误日志: 2014/07/22 01:27:56 INFO - jmeter.threads.JMeterThread:以正向顺序运行PostProcessors 2014/07/22 01:27:56 INFO - jmeter.threads.ThreadGroup:启动线程组编号1 2014/07/22 01:27:56 INFO - jmeter.engine.StandardJMeterEngine:所有线程组都已启动 2014/07/22 01:27:56 INFO - jmeter.threads.JMeterThread:线程开始:线程组1-1 2014/07/22 01:28:09 INFO - com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig:iterationStart() 2014/07/22 01:28:09 INFO - com.googlecode.jmeter.plugins.webdriver.sampler.WebDriverSampler:当前线程名称:'Thread Group 1-1',有浏览器:'FirefoxDriver:firefox on XP(098965b0- fea8-4428-9e6e-76d1385cecc2)” 2014/07/22 01:28:22错误 - com.googlecode.jmeter.plugins.webdriver.sampler.WebDriverSampler:sun.org.mozilla.javascript.internal.WrappedException:Wrapped org.openqa.selenium.NoSuchElementException:无法找到element:{“method”:“id”,“selector”:“login_submit”} 命令持续时间或超时:32毫秒 有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html 构建信息:版本:'2.34.0',修订版:'11cd0ef93615408e0b6b3bfa28defe125906461a',时间:'2013-08-06 11:43:14' 系统信息:os.name:'Windows 2003',os.arch:'x86',os.version:'5.2',java.version:'1.6.0_37' 会议ID:098965b0-fea8-4428-9e6e-76d1385cecc2 驱动程序信息:org.openqa.selenium.firefox.FirefoxDriver 功能[{platform = XP,acceptSslCerts = true,javascriptEnabled = true,browserName = firefox,rotate = false,locationContextEnabled = true,version = 16.0.2,cssSelectorsEnabled = true,databaseEnabled = true,handlesAlerts = true,browserConnectionEnabled = true,nativeEvents = true,webStorageEnabled = true,applicationCacheEnabled = true,takeScreenshot = true}](#18)in the number number 18 2014/07/22 01:28:22 INFO - jmeter.threads.JMeterThread:线程完成:线程组1-1 2014/07/22 01:28:22 INFO - jmeter.engine.StandardJMeterEngine:通知测试结束测试的听众 2014/07/22 01:28:22 INFO - jmeter.gui.util.JMeterMenuBar:setRunning(false, local

1 个答案:

答案 0 :(得分:0)

所有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()

usernameFieldpasswordField等应用相同内容

第三次:如果您仍然遇到任何问题,请添加View Results Tree侦听器或检查jmeter.log文件以找出测试失败的原因并使用错误消息更新您的问题Stack Overflow社区不足以猜测您的测试有什么问题。

有关如何使用WebDriver Sampler的更多详细信息,请参阅Using Selenium with JMeter's WebDriver Sampler指南。