0

Web サイトでバスのチケットを予約するシナリオを自動化しようとしています。Eclipse で Selenium WebDriver を使用しています。要素、つまり「パッセンジャー名」を見つけようとすると、コンパイル エラーは発生しませんが、実行中に " Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"//input[@name='i_passengerAge']"}" などのエラーが表示されます。

以下の HTML と Java コードも、急いで解決する必要があります。

私のシステム情報:

  • ウィンドウズ7
  • セレン WebDriver 2.31
  • エクリプスFW

Web ページの HTML:

<input name="i_passengerName" id="i_passengerName" maxlength="30" class="inputclass pageRequired commonInputStyle" title="Please enter your name!" type="text">

<input name="i_passengerAge" id="i_passengerAge" maxlength="2" size="4" class="inputclass fillAge digits commonInputStyle" type="text">

私の自動化スクリプト:

WebElement PD_Name = driver.findElement(By.name("i_passengerName"));
PD_Name.sendKeys(new String[] {"Testing"});
PD_Name.submit();

WebElement PD_Age = driver.findElement(By.name("i_passengerAge"));
PD_Age.sendKeys(new String[] {"45"});
PD_Age.submit();
4

5 に答える 5

1

エラーは、これらの 2 行の間にあり、PD_Name.submit(); を意味します。WebElement PD_Age = driver.findElement(By.name("i_passengerAge"));

送信後、ページ全体が読み込まれるまで待つ必要があります。これによると、スクリプトを変更して waitForElementPresent(element) 関数を記述する必要があります。

この場合、スクリプトは次のようになります。enter code here

PD_Name.submit();
waitForElementPresent(i_passengerAge);
WebElement PD_Age = driver.findElement(By.name("i_passengerAge"));

これを試して、うまくいくかどうか教えてください。

ありがとう、クリシュナ。

于 2013-04-26T09:20:39.283 に答える
0

1) テキストを入力する前に、最初に待機コマンドを使用します

2) 「id」ロケーターは使用しないでください。両方で同じです。

3) 両方の入力要素に対して、代わりに「クラス」ロケーターを使用します。

于 2013-07-13T04:57:58.047 に答える
0

By.idBy.cssSelectorまたはで要素を取得しようとしたことを願っていますBy.xpath

方法に注意してsubmit()ください。送信するフォームを自動で検索するため、場合によっては失敗することがあります。それが私が古き良きものを好む理由click()です。

By.id :

WebElement PD_Name=driver.findElement(By.id("i_passengerName"));
PD_Name.sendKeys("Testing");
PD_Name.click();

By.xpath :

WebElement PD_Name=driver.findElement(By.xpath("//input[@name='i_passengerName']"));
PD_Name.sendKeys("Testing");
PD_Name.click();

cssSelector の方法については、こちらをご覧ください。

改善したか教えてください。=)

編集 :

実際、i_passengerGenderはありません

于 2013-04-09T09:36:23.557 に答える
0

HemChe が以前に言ったように、これがフレーム内にあることを確認してください。そうであれば、その特定のフレームに切り替える必要があります。

于 2013-04-09T12:05:05.267 に答える