0

私はセレンRCを使用しています。グリッドから実行するためにファイル アップロードの Java コードを Selenium ノードに渡す必要がありますが、可能ですか?

私はセレンコードから呼び出している次のファイルアップロードコードを持っています:

package com.wipro.Base.Base20.QA.SeleniumTests.FullRegression;

import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.*;

/**
 * @author Bogdan Gusiev
 *         Date 29.03.2009
 */
public class FileChooserThread extends Thread {`

    public FileChooserThread(String file) {
        super(new FileRunner(file));
    }
}

class FileRunner implements Runnable {

    private String fullName;

    public FileRunner(String fileName) {
        this.fullName = fileName;
//        run();
    }

    public void run() {
        try {
            Thread.sleep(1000);
            Robot robot = new Robot(); //input simulation class
            for (char c : fullName.toCharArray()) {
                if (c == ':') {
                    robot.keyPress(KeyEvent.VK_SHIFT);
                    robot.keyPress(KeyEvent.VK_SEMICOLON);
                    robot.keyRelease(KeyEvent.VK_SHIFT);
                } else if (c == '/') {
                    robot.keyPress(KeyEvent.VK_BACK_SLASH);
                } else {
                    robot.keyPress(KeyStroke.getKeyStroke(
                                   Character.toUpperCase(c), 0).getKeyCode());
                }
            }
            robot.keyPress(KeyEvent.VK_ENTER);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

}`

`//セレン呼び出しメソッドは次のとおりです。

protected void chooseFile(String element, String fileName) { 

Number   positionLeft = selenium.getElementPositionLeft(element); 

Number positionTop =   selenium.getElementPositionTop(element);

new FileChooserThread(fileName).start(); //launch input thread. 

//this   method will held current thread while FileChooser gives the file name 

selenium.clickAt("file", positionLeft + ","+ positionTop); 

}` 
4

0 に答える 0