简体   繁体   English

Java-在browser.execute(脚本)中使用方法

[英]Java - using method in browser.execute(script)

I have a method with an array that contains names, I am using SWT Browser and with browser.execute() I want to fill the form. 我有一个带有包含名称的数组的方法,我正在使用SWT浏览器,并使用browser.execute()来填写表单。

My question: I want to use the generateName() method in the browser.execute() part instead of TEST as value. 我的问题:我想在browser.execute()部分中使用generateName()方法,而不是将TEST作为值。

Method 方法

/**
 * generate name, lastname
 */
public void generateName() {
   Random generateName = new Random();
   String[] name = {"Liam", "Elias", "Kevin", "Julian", "Linus", "Levi", "Jonas", "Daniel", "Milan", "Maria", "Alexander", "Manfred", "Max", "Jens", "Dennis", "Oliver", "Jan", "Bob", "Henry"};
   String[] lastname = {"Meyer", "Müller", "Eilers", "Gerdes", "Schröder", "Janssen", "Ahlers", "Bruns", "Behrens", "Harms", "Schmidt", "Macke", "Kruse", "Becker", "Lange", "Suhr", "Schulte", "Weber", "Lampe"};

   // debug
   System.out.println(name[generateName.nextInt(19)] + " " + lastname[generateName.nextInt(19)]);
}

Button with listner 带列表器的按钮

/**
 * Create contents of the window.
 */
protected void createContents() {
    shell = new Shell();
    shell.setSize(800, 600);
    shell.setText("SWT Application");

    Browser browser = new Browser(shell, SWT.NONE);
    browser.setUrl("www.pseudopage.com/SignUp");
    browser.setBounds(10, 10, 780, 352);

    Button btnNewButton = new Button(shell, SWT.BORDER);
    btnNewButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            browser.execute("document.getElementById('txtFirstName').value=\"TEST\"");
        }
    });
    btnNewButton.setBounds(10, 374, 94, 28);
    btnNewButton.setText("Generate");

}

I am not sure if I understood your question.. So let's hope I have: 我不确定是否理解您的问题。.所以希望我有:

you could: 你可以:

browser.execute("document.getElementById('txtFirstName').value=\"" + generateName() + "\"");

but generateName must return a value instead of printing it.. 但是generateName必须返回一个值,而不是打印它。

public String generateName() {
   Random generateName = new Random();
   String[] name = ...
   String[] lastname = ...

   return name[generateName.nextInt(19)] + " " + lastname[generateName.nextInt(19)];
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM