首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >迭代字符串数组传递filepath Selenium时出现问题

迭代字符串数组传递filepath Selenium时出现问题
EN

Stack Overflow用户
提问于 2016-10-27 09:09:37
回答 1查看 69关注 0票数 0

我创建了一个方法(在搜索此站点后)将文件路径输入到windows文件管理器中。这很有效,但我想扩展我的测试用例,循环遍历一组文件位置,并将测试文件传递给web应用程序,以测试它们是否得到了适当的处理。

我遇到了一个问题,在第二次传递(我有两个测试文件)时,windows处理程序方法不想输入文件名。有人能扫一扫我的代码给我指出正确的方向吗?

下面是windows文件管理器的方法:

代码语言:javascript
代码运行次数:0
运行
复制
public class WindowsFileSystemHandler {
String filepath;

public void enterfilepath(String pfilepath) throws Exception{

    filepath = pfilepath;

    StringSelection ss = new StringSelection(filepath);
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,   null);
    Robot robot = new Robot();
    //robot.keyPress(KeyEvent.VK_ENTER);
    //robot.keyRelease(KeyEvent.VK_ENTER);
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);
    Thread.sleep(2000);
}

}

下面是测试结果:

代码语言:javascript
代码运行次数:0
运行
复制
    WindowsFileSystemHandler file = new WindowsFileSystemHandler();
        String[] fileloc = {"d:\\JW\\testfiles\\scribbles.txt", "d:\\JW\\testfiles\\earth_large_file_size.jpg"} ;
        for(int i =0 ; i<2; i++){

        Thread.sleep(2000);

        try {
            //WindowsFileSystemHandler file = new WindowsFileSystemHandler();
                    file.enterfilepath(fileloc[i]);
                    System.out.println(fileloc[i]);
                    System.out.println(i);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        String testfiletype = driver.findElement(By.xpath(".//*[@id='SFI_control']/div[2]/div[2]")).getText();
        System.out.println(testfiletype);
        ProfilePage.is_file_validation_successful(testfiletype);
    }//end of for loop

顺便说一下,控制台输出如下:

代码语言:javascript
代码运行次数:0
运行
复制
d:\JW\testfiles\scribbles.txt
0
Invalid file type.
 true
 Test to see if system correctly rejects invalid file type was successful
d:\JW\testfiles\earth_large_file_size.jpg
1
Invalid file type.
 true
Test to see if system correctly rejects invalid file type was successful

可能是我漏掉了一些愚蠢的东西。

EN

回答 1

Stack Overflow用户

发布于 2016-10-27 09:45:02

我想通了我的问题。基本上,我移动了以下语句:

代码语言:javascript
代码运行次数:0
运行
复制
driver.findElement(By.xpath(".//*[starts-with(@id, 'd2l_1_3_')]")).click();

在for循环中,这就解决了我的问题。愚蠢的错误。

有趣的是,我在使用这种方法测试的系统中发现了一个bug,因为之前的错误消息在每次上传文件后都没有被清除。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40274517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档