【问题标题】:Jmeter WebDriverSampler fail with Chromedriver headlessJmeter WebDriverSampler 因 Chromedriver 无头而失败
【发布时间】:2019-07-20 21:08:06
【问题描述】:

我在 Jmeter 中使用 WebDriverSampler 进行了一些测试,这些测试可以与 chromedriver 一起正常工作。它是一个 selenium 脚本,可以打开一个网页并检查它是否包含一系列元素。在我尝试使用 chromedriver headless 选项之前,一切正常。

在这种情况下,我得到异常“预期条件失败:等待存在的元素位于:By.xpath:...”,就好像该元素不存在尚未加载一样。我不知道会发生什么,因为如果我停止使用 headless 选项,如果一切正常并找到真正存在的元素。

这是一个使用的代码示例(它可以在没有 headless 选项的情况下工作):

var wait = new support_ui.WebDriverWait(WDS.browser, 30);
var conditions = org.openqa.selenium.support.ui.ExpectedConditions

WDS.sampleResult.sampleStart();
WDS.sampleResult.getLatency();

WDS.browser.get('http://mi-app/');

try{
  wait.until(conditions.presenceOfElementLocated(pkg.By.xpath('/ruta_de elemento_existente')));
  WDS.log.info('OK')
}catch(e){
    WDS.sampleResult.setSuccessful(false);
    WDS.sampleResult.setResponseMessage('Fail');
    WDS.log.error(e.message)
}

try{
  wait.until(conditions.presenceOfElementLocated(pkg.By.xpath('/ruta_de elemento2_existente')));
  WDS.log.info('OK2')
}catch(e){
    WDS.sampleResult.setSuccessful(false);
    WDS.sampleResult.setResponseMessage('Fail2');
    WDS.log.error(e.message)
}

WDS.sampleResult.sampleEnd();

我希望有人可以帮助我解决这个问题,因为我需要使用无头选项。非常感谢您的宝贵时间。

【问题讨论】:

    标签: selenium-webdriver jmeter selenium-chromedriver jmeter-plugins google-chrome-headless


    【解决方案1】:
    1. 您可以使用以下函数将页面源打印到jmeter.log file

      WDS.log.info(WDS.browser.getPageSource())
      
    2. 甚至可以将其保存到单独的文件中,例如:

      org.apache.commons.io.FileUtils.writeStringToFile(new java.io.File('test.html'), WDS.browser.getPageSource())
      
    3. take screenshot 失败,例如:

      WDS.browser.getScreenshotAs(org.openqa.selenium.OutputType.FILE).renameTo(new java.io.File('test.png'))
      

      查看The WebDriver Sampler: Your Top 10 Questions Answered 文章了解更多信息。


    另外请注意,如果您运行 Selenium 测试的机器没有 GUI,您仍然可以正常启动浏览器,即在 Linux 上使用 Xvfb 或在 Windows 上使用 Local System 帐户

    【讨论】:

    • 感谢您的回复,我已经尝试过了。但是我的问题是我不明白,因为如果我在正常模式下定位元素,而当我使用无头模式时,就会跳转异常。有什么区别?如果页面相同并且以正常方式检查元素存在并且 xpath 正确。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-01-30
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 2014-01-06
    • 2020-05-27
    相关资源
    最近更新 更多