JavaでSelenium Webdriverを使用して要素(テキストボックス)を識別しようとしています。しかし、それは私に要素例外を見つけることができませんを与えています。要素のidは変更されません。ここではHTMLコードがあります:スレッド "main"の例外org.openqa.selenium.NoSuchElementException:要素を見つけることができません
<div>
<table id="searchIdText">
<tbody>
<tr id="searchIdText-inputRow">
<td id="searchIdText-labelCell"><label
id="searchIdText-labelEl"> Search By Id <span
role="separator">:</span>
</label></td>
<td id="searchIdText-bodyEl"><input id="searchIdText-inputEl"
type="text" autocomplete="off" name="searchIdText-inputEl" size="1"
role="textbox" style="width: 100%; height: 20px;" /></td>
</tr>
</tbody>
</table>
</div>
私が欲しいの要素は、ID searchIdText-inputElとテキストボックスです。
driver.findElement(By.xpath(".//*[@id='searchIdText-inputEl']"));
driver.findElement(By.name("searchIdText-inputEl"))`
と同様に:私は試してみました
driver.findElement(By.id("searchIdText-inputEl"));
をしかし、それらのどれも機能していません。私は待っているとThread.sleep
も試してみました。彼らの誰も働いていません。また、HTMLコードの変更はオプションではありません。これら以外のすべての提案は歓迎です。ありがとう!
Javaコードスニペットは次のとおりです。必死の対策として、明示的待機とスレッド・スリープを両方とも追加しましたが、どちらも私に結果を個別に渡すことができませんでした。しかし、それはまだ役に立たなかった。
WebDriver driver = new FirefoxDriver();
WebElement element = null;
WebDriverWait wait = new WebDriverWait(driver, 30);
driver.get(url);
Thread.sleep(60000);
element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='searchIdText-inputEl']"));
element.sendKeys("ABC");
ページが読み込まれるとすぐに要素が表示されますか?現在のJavaコードをポストして、ちょっとした文脈を与えることができますか? – Josh
Javaコードスニペットを編集して追加しました。 –
ありがとうございます、ページの読み込みが表示されますか、要素が表示されていますか? – Josh