0

こんにちは、私は、次のHTMLを切り取られている:Javaを使用してSeleniumのHTMLコードに続くWebElementを見つける方法は?

<tr rowid="0" class="addedrow rowselected datarow rowfocus"> 
.... 

<td positionindex="3" class="primary required"> 
    <input type="text" class="editablecell" size="15"> 
</td> 

<td positionindex="4" class="required"> 
    <div class="select2-container editablecell" id="s2id_autogen1" style="width: 99%;" title=""> 
     <a href="javascript:void(0)" onclick="return false;" class="select2-choice select2-default" tabindex="-1"> 
     </a> 
    </div> 
</td> 

.... 

私は​​テキストフィールドにテキストを挿入する必要があります。私はこの特定のWebElementをJavaでSeleniumを使って見つけるのが難しいです。

私はANSER hereに基づいて、この

WebElement box = driver.findElement(By.xpath("//input[(@type='text') and 
(@class='editablecell')]")); 

を試してみました。

注:この要素は、以下の構造である:スロー

<html> .... 
    <body> ... 
     <div id=topLeveWrapper> ... 
       <div id=header> ... 
       <div id=contentFrame> ... 
        <div id=leftSite> ... 
        <div id=rightSite> ... 
         <div id=pageID_123456> ... 
          <div id=gridViewID_98765> ... 
           <div id=tableWrapper> ... 
            <div id=twHEADER> ... 
            <div id=twBODY> ... 
             <table > 
              <thead> ... 
              <tbody> 
               <tr rowid=0 ...> 
                <td positionindex="3" class ="primary required"> <input type="text" class="editablecell" size="15"> 
                </td> 
               .... 
               </tr> 
              ...................... 

Exeptionは次のとおりです。

Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//input[@type='text' and @class='editablecell']"} 
    (Session info: chrome=..) 

情報:

For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html 

誰もが、この上で私をしてくださいguidをすることはできますか?

おかげ

+0

XPathに問題はありません。 Web要素がフレーム内にあるように見えます。それを確認しましたか? – Monika

+0

@dhssa、問題のフィールドのURLと名前を教えてください。 – Deepak

+0

あなたのxpathを見つけるためにfirebugとfirepathを使用してください。あなたがそれを見つけるのを助けると確信しています。必要に応じてxpathをカスタマイズすることができます。詳細については、次のリンクを参照してください:https://www.guru99.com/xpath-selenium.html –

答えて

0

を使用することができます要素とそれがうまくいった。これは私の制限されたXPATHSeleniumの知識のために要素を見つける最良の方法ではないかもしれませんが、私はこのようにしかできませんでした。問題ショーでHTML構造として、私は要素の非常に高いレベルから始め、私が後だっ目的の要素までドリルダウン:

driver.findElement(By 
      .xpath("//div[@class='fht-tbody']/table/tbody/tr[@rowid='0']/td[@positionindex='3']/input")); 

私は多くのwasyで私の質問を訂正コメントやすべてのコメントに感謝し、答えが私を助け、私の解決方法に導いてくれました。私はこの問題を解決するより良い方法を見ていきたいと考えています。

ありがとうございました!

1

は、次のxpathで試してみてください。

WebElement box = driver.findElement(By.xpath("//input[@type='text' and @class='editablecell']")); 
+0

これは、要素がiframe内にあるか、または要素がレンダリングされるのを待つ必要があることを意味しますHTML DOMをクリック可能にする – DebanjanB

+0

@DebajanB実際のHTMLコードで要素の位置の構造を指定した編集済みの質問を見てください。 – dhssa

+0

このxpathは、質問に記載されているxpathとどのように違いますか? – Sameer

2

あなたは単に私が見つけるためのfollowinig方法を試してきたように、私は自分の質問に答えるのです。このXPath式 driver.findElement(By.xpath("//input[@class='editablecell']"))

関連する問題