web-dev-qa-db-ja.com

Selenium IDEによってWebサイトの空白領域でのマウスクリックをシミュレートする方法は?

Selenium IDEによって一部のWebサイトのデータトラフィックをウェイクアップするために、フォームの外側の空白領域をマウスクリックしたいと思います。何か案は?

X、yでクリックしようとしましたが、テストケースでは効果がありません。シナリオは以下のとおりです。

  1. メールフィールドに入力
  2. このメールがDBにすでに存在するかどうかを確認するために、クライアントがサーバーにデータリクエストを送信するようにするには、フォームの外側をクリックします。その後、オートコンプリートが実行され、[続行]ボタンが有効になります。
10
Idan E

次のコマンドを使用できます。

driver.findElement(By.xpath("//html")).click();

しかし、時々それは空白を取りません、

このような場合は、次を使用します。

driver.get("//html");
7
Manu Singh

確かに存在するページ上の別の要素をクリックするだけです。

Browser.Driver.FindElement(By.Id("testtest123")).Click();

別の解決策は、その電子メールフィールドからフォーカスを削除してJavaScriptを呼び出すことです。これは、ajaxがトリガーするように設定したトリガーに依存します。

1

「html」は特別な要素であり、必要なのは「body」(「表示」される最初のDOM要素)です。

したがって、以下を使用してください(Chrome問題なく動作することを確認)でテスト済み):

pythonの例driver.find_element_by_xpath("//body").click()

1
CharlesC

最善の解決策は、次のステートメントを実行して、キーボードのTABキーを使用することです。

element.sendKeys(Keys.TAB);

それは次の要素に焦点を合わせます-したがってフィールド外-そしてあなたはあなたが望む結果を得るでしょう。

0
Usman Kokab

反応コードの空白領域をクリックする必要があります。

以下のコードは私の問題を修正しました。

 driver.FindElement(By.XPath("//body")).Click();
0
Metin Atalay

それでも人々に役立つことを願っていますので、答えがあります=)ドロップダウン、フィールド、または他のボタンが非アクティブになる場合、Seleniumは単純なクリックで常に例外をスローします。私にとっての方法は、一時停止でアクションを使用することでした。ここに私の例のいくつかのコード行があります:

Actions actions = new Actions(driver);
actions.moveToElement(driver.findElement(By.xpath("your path")))
       .click().pause('your amount of milliseconds').click().build().perform();

それをいくつかの関数にラップすると、新しいクリッカーができます。

0
V Λ C U U M