2016-08-03 15 views
2

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"); 
+0

ページが読み込まれるとすぐに要素が表示されますか?現在のJavaコードをポストして、ちょっとした文脈を与えることができますか? – Josh

+0

Javaコードスニペットを編集して追加しました。 –

+0

ありがとうございます、ページの読み込みが表示されますか、要素が表示されていますか? – Josh

答えて

0

が判明し、隠されたと何とかコントロールは、ページのロード時とのiFrameに移したiFrameがありました。私はそれを切り替え、今は正常に動作します。

関連する問題