0

以下のスクリプトを適切に実行すると、他の領域は移動しませんでしたが、何らかのアクションを実行すると、ダウンロード ファイル コードが機能しない他の領域に移動することになります。

問題はフォーカスに関連しているのか、それとも変更が必要なのか。firefox 21 バージョンのブラウザと selenium 2.33 を使用しています。提案してください。

コードは次のとおりです。

package mypackage;

import java.awt.Robot;
import java.awt.event.KeyEvent;
import org.junit.Before;
import org.junit.Test;
import Data.Function;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.junit.After;

public class Report extends Function {

    Object Open_a_popup_window;
    String Positioned_Popup ;
    Object JavaScript_Popup_Windows ;

    @Before
    public void setUp() throws Exception {
        driver = new FirefoxDriver();
        baseUrl = "my url";
    }

    @Test
    public void Report1() throws Exception {
        Function object = new Function();
        object.Login();

        /* Enter Report Details */
        driver.get(baseUrl + "//");
        driver.get(baseUrl + "//");

        /*Run*/
        driver.findElement(By.xpath("")).click(); 
        Thread.sleep(30000);
        WebElement Action = driver.findElement(By.xpath(""));

        for (String winHandle : driver.getWindowHandles()) {
            driver.switchTo().window(winHandle);
            ((JavascriptExecutor) driver).executeScript("window.focus();");}
            String linktxt = Action.getText();
            if (linktxt.equalsIgnoreCase("Record not found.")) {
                System.out.println("Report contains No Data:"); 
            }

            if (linktxt.equalsIgnoreCase("FAILED")) {
                System.out.println("Report failed");    
            } else {
                driver.findElement(By.xpath("/img")).click();

                Robot robot = new Robot();
                robot.keyPress(KeyEvent.VK_ENTER);
                robot.keyPress(KeyEvent.VK_ENTER);
                Thread.sleep(10000);

                robot.keyPress(KeyEvent.VK_ENTER);
                robot.keyPress(KeyEvent.VK_ENTER);
                Thread.sleep(10000);

                System.out.println("Report Passed");
            }
        }
    }

    @After
    public void teardown() {
        driver.close();
        //System.exit(0);
    }
}
4

2 に答える 2

0

Enter キーを押してロボットを使用したことがわかります。もちろん、フォーカスのあるウィンドウで動作します。

したがって、移動すると、新しくフォーカスされたウィンドウでエンターが起動されます。

于 2013-09-14T02:57:02.110 に答える
0

ポップアップ ウィンドウはブラウザ ポップであり、ロボット キーでは処理されませんでした。そのため、サード パーティのアプリ「auto it」を使用しましたが、Windows オペレーティング システムでのみ使用される制限があり、UNIX や Linux ではサポートされていません。

于 2014-06-11T11:45:12.610 に答える