web-dev-qa-db-ja.com

Appium Testingで「Enterキー」を入力してください

送信/押す方法Enter AppiumのソフトキーボードからのキーAndroid自動化テスト?
いくつかのオプションを試しましたが、どれも機能していません。キーを押す代わりに、テキスト領域に入力されたテキストをクリアしています。以下はコードです(Java言語で):

String app_package_name = "abc.xyz.Android";

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", "Nexus_5X_API_23");
capabilities.setCapability("platformVersion", "6.0");
capabilities.setCapability("appPackage", app_package_name);
capabilities.setCapability("appActivity", app_package_name + ".activity.StartupActivity_");

String url = "http://127.0.0.1:4723/wd/hub";
AndroidDriver driver = new AndroidDriver(new URL(url), capabilities);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

By password = By.id(app_package_name_with_id + "et_password");
WebElement enterPassword = driver.findElement(password);
enterPassword.click();
driver.getKeyboard().sendKeys("12345");

driver.getKeyboard().sendKeys(Keys.ENTER); // THIS IS NOT WORKING.
driver.getKeyboard().sendKeys(Keys.RETURN); // THIS IS ALSO NOT WORKING.
driver.pressKeyCode(AndroidKeyCode.ENTER); // THIS IS ALSO NOT WORKING.
driver.pressKeyCode(AndroidKeyCode.KEYCODE_NUMPAD_ENTER); // SAME HERE.
enterPassword.sendKeys(Keys.ENTER); // SAME HERE.

誰か私がそれを達成するのを手伝ってくれるなら、どうかしてください

7
pratik03

使用する前に

((AndroidDriver)driver).pressKeyCode(AndroidKeyCode.ENTER);

以下の必要な機能を設定します

capabilities.setCapability("unicodeKeyboard", "true");                                     
capabilities.setCapability("resetKeyboard", "true");
3
anonyMouse

キーイベントを使用して送信する:driver.press_keycode(66)またはadb Shell input keyevent 66を使用します。

2
Thejus Krishna

あなたはこれを試すことができます、それはすべてのデバイスで動作します

driver.executeScript("mobile:performEditorAction", ImmutableMap.of("action", "done"));
1
akash

次のコードを試してください。それは私のために働いています:

import io.appium.Java_client.MobileElement;
import io.appium.Java_client.Android.AndroidDriver;
import org.openqa.Selenium.remote.DesiredCapabilities;
import io.appium.Java_client.Android.nativekey.AndroidKey;
import io.appium.Java_client.Android.nativekey.KeyEvent;

((AndroidDriver<MobileElement>) driver).pressKey(new KeyEvent(AndroidKey.ENTER));

Enterキーを使用する前に、まずテキスト入力フィールドをクリックする必要があります。

0
Suban Dhyako

あなたはアクションクラスを使うことができます、それは私のために働きました

Actions action = new Actions(driver);
action.sendKeys(Keys.ENTER).perform();
0
Anuj Bansal

あなたはロボットクラスを使うことができます:-

     Robot robot;
    try {
        robot = new Robot();
         robot.keyPress(KeyEvent.VK_ENTER);
         robot.keyRelease(KeyEvent.VK_ENTER);
    } catch (AWTException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

テストケースをバックグラウンドで実行する場合はお勧めしません。ロボットフレームワークは、何も主張せずに単に関係なく入るだけです。

または、以下のコードを試すことができます:-

driver.pressKeyCode(AndroidKeyCode.KEYCODE_NUMPAD_ENTER );

ソース: Enterキーを押す他の方法もあります):-

---(https://discuss.appium.io/t/how-to-click-enter-after-entering-some-text/3136/4

それがあなたを助けることを願っています:)

0
Shubham Jain

これは私のために働いたものです:

try {
    driver.hideKeyboard();
} catch (Exception e) {
    e.printStackTrace();
}
0
Bill Hileman

APIドキュメント: https://appium.github.io/Java-client/constant-values.html#io.appium.Java_client.Android.AndroidKeyCode.ENTER

コードを入力してください66

Python

self.driver.press_keycode(66)

Java

((AndroidDriver<MobileElement>) driver).pressKey(new KeyEvent(AndroidKey.ENTER));

私はAndroid 9をYouTube検索でテストしました。

@akashと@LuckyLikeyからの回答により、JavaScriptでこのソリューションに導いた:

return driver.waitForElementById(<elementId>).type(<text to type>).click().execute( "mobile: performEditorAction", { "action": "search" } );

これにより、テキストフィールドを見つけてテキストを入力し、検索コマンドを送信できました(キーボードの検索アイコンをクリックするのと同じです)。もちろん、あなたは<elementId>および<text to type>に適切な値を指定します。 「mobile:performEditorAction」の詳細については http://appium.io/docs/en/commands/mobile-command/ を参照してください。

0
Jarod Legault

だからあなたは以下の指定された手紙を送ることができます:

enterキーを押すためのsendKeys( '\ n')

他の参照言語 sendKeys API 他のプログラミング言語

0

だから、あなたはこれが好きで、過去のいくつかの状況で私のために働いてきました、そしてその実際のシンプルな

enterキーを押します

sendKeys('\n') 
0
Brent