2016-10-22 14 views
-1

これは私のサンプルのhtmlコードです。入力タイプ= "text"のxpathを見つけることができません。次の兄弟を使ってxpathを見つけることができません

注:div idからのxpath参照のみが必要です。

<div id="PRINTDIV"> 
    <table id="one"></table> 
    <table id="two"></table> 
</div> 

<table> 
    <tr> 
     <td> 
      <input type="button" value="post value" > 
     </td> 
     <td> 
      <input type="text" > 
     </td> 
    </tr> 
</table> 

私は以下のxpathを使用しています。しかし、働いていない。

/* [ID = 'PRINTDIV' @] /以下、兄弟::テーブル/ TR/TD [2]

私を修正してください。

+0

完全なXMLを提供すれば、多くの人がすぐに解決策を提供できるようになります。これがなければ、皆が推測する必要があります。 –

答えて

0

最初にスラッシュがありません。trの前に余分なスラッシュを追加する必要があります。検査要素ではなぜtbodyタグが追加されているのか分かりませんが、理由は分かりません。

"//div[@id='PRINTDIV']/following-sibling::table//tr/td/input[@type='text']" 

か、直接それを取得するために、テーブルのIDを使用しないのはなぜCSS

"div[id='PRINTDIV'] + table tr > td > input[type='text']" 

てみては?それは動的に生成されたIDですか?

+0

あなたの返事をありがとう。これは私のために働いていない - xpathとCSSの両方。 divの下にテーブルのIDはありません。今質問を編集しました。 –

+0

私は正確にクロムの更新されたhtmlを使用しています。 iframeの内側にdivとtableはありますか? – Grasshopper

+0

ご返信ありがとうございます。私はIE 11を使用しており、失敗します。ちょうど今クロムチェック。それは私にとっても完璧に機能します。私はIE 11を開始するために以下の設定詳細を使用しています。System.setProperty( "webdriver.ie.driver"、 "D:\ SELENIUM \\ SEL_PRACTICE \\ driver \\ IEDriverServer.exe"); \t \t DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); \t \t caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS、true); \t \tドライバ=新しいInternetExplorerDriver(caps); –

0

divはルートノードの直下の子ではないため、単一の/を介してdivにアクセスすることはできません。セレンの解析とDOM内のノードの検索を許可するには、//を指定する必要があります。

したがって、// divは要素にアクセスできる必要があります。

+0

ありがとうございます。 IE11で動作していないxpathを使って私を助けてください。 –

関連する問題