当前位置: 首页 > 知识库问答 >
问题:

硒网络驱动程序不读取 CSV 文件使用 CSVReader

端木涵润
2023-03-14

我正在使用Chrome Webdriver执行Salesforce页面流的脚本。这些流用Selenium JUnit代码编写,在JMeter 5.4.1中作为JAR (JUnit请求采样器)导出和执行。该页面有一个带有文本框的弹出窗口。它应该从一个CSV文件(当前保存在Selenium项目中)中逐个读取所有值[例如,value1,value2...值n] (1列,“n”行),直到所有值都结束。输入一个数据后,单击“下一个”按钮,从CSV中获取下一个值。“Tube1Id”是文本框的元素名称。当前流在JMeter中运行时执行,直到文本框显示在弹出窗口中并停止,只是在读取CSV文件的步骤上。有人能帮忙吗?

public void jmeterTest() throws InterruptedException
{
    try
    {
        String CSVPath = "C:\\Users\\user\\Documents\\CAREDx\\SeleniumProject\\SeleniumProject\\CSVSamples\\samples.csv";   
        driver.get("https://baseurl/");
        
        /* code for pop up window open with Textbox*/
        
        WebElement Tube1Id = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@name='Tube1Id']")));   
                        
        CSVReader reader = null;
        reader = new CSVReader(new FileReader(CSVPath));
        String[] samples;
        while ((samples = reader.readNext()) != null) 
        {               
            String TubeId = samples[0];
            Tube1Id.sendKeys(TubeId);
            log.info(threadName + "::  Tube ID :: " + TubeId);
            
            /* code for Next button click */
        }
    }
}

共有1个答案

焦同
2023-03-14

我找到了另一种方法来解决这个问题,因为从外部csv文件位置读取数据不起作用。

我在 JMeter 中在 JUnit 请求 [线程组 ] 下添加了一个 CSV 数据集配置元素

String samples = junitSampler.getThreadContext().getVariables().get("samples");
String[] arrOfStr = samples.split("@");
/* in-between code */
for (String TubeID : arrOfStr)
{
    Tube1Id.clear();
    Tube1Id.sendKeys(TubeID);
/* remaining code for click Next */
}

它正在工作。

 类似资料:
  • 我有一个问题,上传文件到网络系统使用硒驱动程序。所以在我的页面上,我没有任何输入来设置文件路径,而且我在网络上找到的大多数解决方案都不适合我。我必须点击上传文件按钮,然后在窗口对话框中设置文件的路径。我找到了winforms SendKeys类中使用的方法: 它的工作,但只有当测试有完全控制的机器(如果没有-路径已发送到某处不对话)。这就是问题所在,因为我无法完全控制运行测试的机器。你知道不使用S

  • 我正在使用http://csvjdbc.sourceforge.net/doc.html要将磁盘上的CSV文件(例如“myDir”中的“myFile”)视为SQL DB,我可以使用SQL语法进行查询: 这工作正常,但是当CSV文件没有头时,我遇到了麻烦。在那种情况下,第一数据线被认为是报头并且因此不像其他数据线那样被读取。 有没有办法告诉查询不要寻找标头,而将第一行视为数据输入?

  • 我的目标是使用硒为Python自动在线账单支付。 使用以下代码使用 Web 驱动程序登录成功: 登录后,一个新的页面加载,我的下一步是点击一个链接。代码: 什么也没发生。没有导航到该法案 但仍然没有。我还应该尝试其他什么? 错误: Traceback(最近调用的最后一次):File"/home/队长/. PyCharmEdu30/config/划痕/scratch_1.py",第12行,在clic

  • 下面是我为firefox浏览器初始化的selenium web驱动程序。 尽管我给出了隐式等待,但我没有等待元素。它会立即抛出not found异常。如果我放那么它工作正常,没有任何问题。但是把现在测试用例包含更多线程的任何地方。sleep比实际的测试用例代码低。有人能给我建议正确的方法吗?

  • 我无法从以下网页中读取电子邮件id: 网址:https://targetstudy.com/university/2/acharya-ng-ranga-agricultural-university/ 这是我的代码

  • 正在研究尝试理解显式等待的方法。 所以单选按钮被点击后,输入形式发生了变化,所以我把给它一个时间元素出现,否则会出错“元素不可见......”。所以我认为现在是理解显式等待的好时机,因为我需要等到元素出现。 但出现错误“Selenium::WebDriver::error::ElementNotVisibleError:Element当前不可见,因此可能无法与之交互”。为什么这段代码不等到元素出现