シフト+ ctrl + sをセレンに入力するには? あなたは、単にそれを押し下げ、その後、各キーコード初回ためwebdriverを、その後、与えられたキーを一連のキーを送信する場合、私はその投げエラーセレンにシフト+ ctrl + sを入力する方法
2
A
答えて
1
Actions action = new Actions(driver);
action.sendKeys(Keys.chord(Keys.SHIFT + Keys.CONTROL + "s")).perform();
を使用していました。
だからあなたのコードsendKeys(Keys.chord(Keys.SHIFT + Keys.CONTROL + "s")
が時間内に一連のイベント以下に相当します。
- Shiftキーを押しながら
- 踏込SHIFT
- プレス制御
- 押し下げのCONTROL
- sを押し
- 押し下げs
Sキーが押された瞬間にCtrlとShiftを押してを保持していると思われるので、これはあなたが望むものではありません。
あなたは鍵を解放するためにキーを押すと、押した状態でそれを残すためにActions#keyDownメソッドを使用して、後でActions#keyUpする必要があります。だから、アクションのシーケンスは次のようになります。
- Shiftキーを押しながら -
keyDown
- 押してCtrlキーを使用して -
keyDown
- を使用すると、キーを押し、次にS(このキーを押すと、すぐに
sendKeys
方法を使用して解放することができます) - をリリースCtrl-Shift-Sを押すと表示されるまで待ちます。
- Release Shift - using
keyUp
テストコードの後で予期しない影響(Ctrl + Shiftを押したままにしないでください)を避けるために、ポイント5と6(リリースキー)を実行する必要があります。
ここには、Webドライブコードをテストするのに役立つsimple page on jsfiddleへのリンクがあります。
<body>
<p>Press a key on the keyboard in the input field to find out if the Ctrl-SHIFT key was pressed or not.</p>
<input id="ctrl_shift_s" type="text" onkeydown="isKeyPressed(event)">
<p id="demo"></p>
<script>
function isKeyPressed(event) {
console.log(event.keyCode);
var x = document.getElementById("demo");
if (event.shiftKey && event.ctrlKey && event.keyCode == 83) {
x.innerHTML = "The Ctrl-SHIFT-S keys were pressed!";
} else {
x.innerHTML = "Please press Ctrl-SHIFT-S";
}
}
</script>
</body>
あなたはその後、(この要素のid =「ctrl_shift_s」)このページの入力フィールドにカーソルを移動し、Ctrl + Shift + Sキー(SHIFTキーとCtrlを保持している)を押した場合メッセージが表示されますCtrl-Shift-Sキーが押されました!以下は
最新のIEやFirefoxとChromeのドライバを使用して上記のテストページagaistテスト(作業)のコード例です。 IEドライバでActions
を実行するには、requireWindowFocus();
オプションを使用する必要があります。
WebDriver driver= null;
try{
System.setProperty("webdriver.ie.driver", "C:\\instalki\\IEDriverServer.exe");
System.setProperty("webdriver.chrome.driver", "C:\\instalki\\chromedriver.exe");
System.setProperty("webdriver.gecko.driver", "C:\\instalki\\geckodriver.exe");
InternetExplorerOptions opt = new InternetExplorerOptions();
opt.requireWindowFocus();
// driver=new InternetExplorerDriver(opt);
// driver = new ChromeDriver();
driver = new FirefoxDriver();
driver.manage().window().maximize();
WebDriverWait wait = new WebDriverWait(driver, 10);
driver.get("https://jsfiddle.net/39850x27/2/");
final By inputField = By.id("ctrl_shift_s");
final By messageWeWaitFor = By.xpath("//*[text() = 'The Ctrl-SHIFT-S keys were pressed!' ]");
final By frame = By.name("result");
// Swift to a frame (our test page is within this frame)
driver.switchTo().frame(driver.findElement(frame));
// move a corsor to the field
wait.until(ExpectedConditions.elementToBeClickable(inputField)).click();
Actions a = new Actions(driver);
// Press SHIFT-CTRL-S
a.keyDown(Keys.SHIFT)
.keyDown(Keys.CONTROL)
.sendKeys("s")
.build()
.perform();
//Wait for a message
wait.until(ExpectedConditions.visibilityOfElementLocated(messageWeWaitFor));
System.err.println("Success - Ctrl-Shift-S were pressed !!!");
// Sleep some time (to see the message is really on the page)
Thread.sleep(5000);
// Release SHIFT+CTRL keys
a.keyUp(Keys.CONTROL)
.keyUp(Keys.SHIFT)
.build()
.perform();
}finally {
if(driver!=null) {
driver.quit();
}
}
関連する問題
- 1. ブラウザでCTRL + Sをキャプチャする方法
- 2. 入力方法Ctrl-D
- 3. ReadConsoleInputWを含むWindowsコンソールのCtrl-S入力イベント
- 4. CTRL + Sをキャプチャするときにウィンドウを消す方法は?
- 5. キーボードイベントをキャプチャするCTRL + s
- 6. Javascript check ctrl + s
- 7. VSCode Ctrl + S
- 8. TinyMCEシフトをULに入力
- 9. フレックスでCTRL + C入力とF3キー入力を検出する方法
- 10. エルムのシフト入力を検出する方法は?
- 11. テキスト入力の値のシフトを決定する方法は?
- 12. PHPを使用して入力テキストボックスにCTRL + S(control + s)を入力したかどうかを確認するにはどうすればよいですか?
- 13. WPF:Convert Ctrl + Enterをテキストボックスに入力する
- 14. figlet出力のシフト方法
- 15. Ctrlキー+シフト+ F8はアンドロイドスタジオ
- 16. ctrl shiftを入力して配列を入力します
- 17. セレンのjavaScriptExecutorでユーザー入力を送信する方法
- 18. Ctrl + Sを検出QTextedit?
- 19. ホットキーを入力するバッチファイル:CTRL Printscreen
- 20. VBAを使用してExcelスプレッドシートにCtrl + Enterを入力する方法
- 21. VBAとInternet Explorerを使用してCtrl + Fテキストボックスに入力する方法
- 22. CTRL + SでのWinFormsデザインモード
- 23. divの保存ページを隠す(ctrl S)
- 24. セレンを使って 'textarea'タグにテキストを入力する方法は?
- 25. セレンを使用してコードミラーミラーにテキストを入力する方法は?
- 26. ユーザーがExt.form.field.HtmlEditorでテキストを入力したときにCtrl + Enterを入力する
- 27. スレッドv/s入力引数
- 28. scanf( "%s")に非ASCII文字を入力
- 29. ボタンを経由してCtrlキーSまたはCtrl Pをトリガ
- 30. キーを送るSHIFT + CTRL + Sが機能しない