web-dev-qa-db-ja.com

JavaでSelenium Webdriverのタイムアウトエラーを解決するにはどうすればよいですか?

私のHTML

<form id="load_form" class="ajaxsubmit" method="post" action="ajax.php">
<input type="hidden" value="register" name="action">
<h3>Registration Form</h3>
<img id="loader" width="20" height="20" style="display:none;" src="images/loader.gif">
<p id="alert"></p>
<fieldset>
<fieldset>
<fieldset>
<fieldset>
<fieldset>
<fieldset>
<label>Username:</label>
<input type="text" required="" name="username">
</fieldset>

私のJavaコード

WebDriverWait wait = new WebDriverWait(driver,30);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@name='username']")));
element.sendKeys("john");

エラー以下になる

スレッド「メイン」での例外org.openqa.Selenium.TimeoutException:By.xpathによって配置された要素の可視性を待機して30秒後にタイムアウト:// input [@ name = 'username']ビルド情報:バージョン: '2.53.0 '、リビジョン:' 35ae25b '、時間:' 2016-03-15 17:01:03 '

何か助けは?待機時間を増やしてすでに試しましたが、うまくいきません

5
Ab123

実際には あり 同じ名前inputの2つのusername要素が存在し、1つは非表示でもう1つは表示され、最初の1つは表示されません。ページが見つからない理由は、以下のようにcssSelectorを使用してみてください:-

WebDriverWait wait = new WebDriverWait(driver,30);

WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div#load_box input[name = 'username']")));
element.sendKeys("john");
2
Saurabh Gaur