Selenium和Python通过CSV循环

2024-06-06 21:43:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Selenium(Python)实现Chrome的自动化。目标是用现有的CSV或Excel文件填写数千个在线表单。在

源文件将有数千行和大约40列,标识要输入到这些自定义字段中的自定义字段或值的元素。在

我目前正在使用一个带有CSV扫描仪的While循环,在Selenium和Java中使用这样的解决方案。该项目使用一行中的每一列来填写web表单,单击submit,然后转到其中一列中的URL转到下一行。一旦代码移动到CSV的每一行,循环就完成了。在

下面是在Java中使用Scanner实用程序时的代码:

    //LOCATE MASTER CSV FILE
    String fileName = "CSV PATH.csv";
    File file = new File(fileName);
    Scanner inputStream = null;
    int docSize=0;

    //DETERMINE SIZE OF CSV
    inputStream = new Scanner(file);
    while( inputStream.hasNext() ) {
        docSize++;
        inputStream.nextLine();
    }

    //INITIALIZE CHROME AUTOMATION
    setUpDriver();

    //LOGIN TO WEBSITE
    login();

    //CREATE A SCANNER OBJECT TO READ CSV
    inputStream = new Scanner(file);
    int count = 0;


    //SENDS CHROME TO URL
    driver.get("URL ADDRESS");
    sleep(3);
    int counter = 1;


    //MAIN LOOP:
    for(int i=0; i<docSize; i++){

        //PULLS NEXT ROW OF CSV
        String next = inputStream.nextLine();
        list.add(next);
        count++;

        //BREAKING APART THE CSV BY COLUMMNS (',') 
        values = next.split(",");
        for(int j=0; j<values.length; j++) 
        {
        //System.out.println(j + " " + values[j]);
        }

        //SEND CHROME TO  URL
        try {
            sleep(0);
            String newURL = values[1].toString();
            driver.get(newURL);
            sleep(3);
        } catch (ElementNotVisibleException | NoSuchElementException e1) {
            System.out.println("Booking # " + count + " failed.");
            continue;
        }

这可以用Python为Selenium编写吗?我宁愿远离Java。在

谢谢!在


Tags: csvtourlnewstringseleniumcountjava