2

ウィンドウのボタンをクリックする以下のコードがあります。ボタンをクリックすると、現在のウィンドウが閉じられ、新しいウィンドウが開きます。新しいウィンドウのテキストボックスにテキストが入力されます。

WebElement element=null;
        try {
            driver.getWindowHandles();
            for (String winHandle : driver.getWindowHandles()) {
                    driver.switchTo().window(winHandle);
                    try {
                            element = driver.findElement(By.xpath("//*[@id='username']"));
                    } catch (Exception e) {
                        continue;
                    }
                    if (element.isDisplayed()) {
                        windowFound = 1;
                        break;
                    }
                }
            }
element.sendKeys("Testingusername");

送信キーを入力する最後の行は失敗していません。ただし、実際のテキストはテキスト ボックスに入力されません。

これはクロムでうまく機能します。問題は Internet Explorer のみです。セレン: 2.53.1 IE 11

4

5 に答える 5

1

いくつかのこと :

  • では動作が異なるIE場合があるため、正しい要素を見つけたかどうかを確認してください。XPathIE

  • 問題の要素の属性を、他のブラウザで観察された属性で確認してみてください。

  • ブラウザIE用のドライバ 32 ビット版を使用してみてください。IE11

  • 何も機能しない場合は、 javascript を使用しても害はありませんsendKeys。それは悪い習慣ではない

于 2016-07-27T07:45:40.953 に答える
1

要素に焦点を当ててみてください

element.Clear();
element.sendKeys("testingUserName");

このコードを入れて catch を試し、例外が発生するかどうかを確認します

于 2016-07-27T06:35:08.643 に答える
0

これを試してください

WebElement element=null;
        try {
            driver.getWindowHandles();
            for (String winHandle : driver.getWindowHandles()) {
                    driver.switchTo().window(winHandle);
                    try {
                            element = driver.findElement(By.xpath("//*[@id='username']"));
                    } catch (Exception e) {
                        continue;
                    }
                    if (element.isDisplayed()) {
                        windowFound = 1;
                        break;
                    }
                }
            }
element.click();

String text = "your text that you want to enter";
StringSelection stringSelection = new StringSelection(text);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, stringSelection);

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
于 2016-07-27T11:46:33.773 に答える