それは非常に簡単です:そしてところで、cssは進むべき道です。xpathは、最後の手段としてのみ使用する必要があります。http://sauceio.com/index.php/2010/01/selenium-totw-css-selectors-in-selenium-demystified/は、ここで提供されているスペースよりもはるかに詳細にcssロケーターについて説明しています。
最善のアプローチ:FirefoxダウンロードFirebugを使用している場合は、HTMLを確認できます。cmd + Shift + cを押すと、要素の蛍光ペンが表示されます。あなたのhtml要素を見つけてください、多分それはこのように見えるでしょう
<input type="submit" tabindex="110" value="Post Your Answer" id="submit-button">
次に、要素を非常に簡単に見つけることができます
WebElement element = driver.findElement(By.cssSelector("input[id='submit-button']"))
タグ名を最初に「input」、次に角かっこ「input [id='submit-button']」内にある種の一意の識別子を配置していることに注意してください。ほとんどの場合、これは使用するすべてのcssロケーターの75%をカバーします。他の25%は、ページの上部に配置したリンクでカバーされているもう少しトリッキーなものを必要とします。
http://release.seleniumhq.org/selenium-remote-control/0.9.2/doc/dotnet/Selenium.htmlで説明されているように、「id以外にどのような種類の一意の識別子を使用できますか」とよく尋ねることができます。
頑張って始めましょう
編集
そもそも要素を見つけて頑張ってください...必要に応じて、input [id *='submit']のような部分的なロケーターテキストで要素を検索できます。これを使用すると、要素ごとに変化しないロケーターの一部として部分的なテキストを使用する場合に、動的に生成される要素に役立ちます。
htmlツリーを歩いているとおっしゃっていましたが、最初に質問を読んだときは、おそらくそれがわかりませんでした。手元にある問題にぶつかったと思います。htmlツリーを上に歩くと、テストがhtmlの変更に対してより脆弱になるため、お勧めできません。また、長期的にはコードが読めなくなります。一般に、IDが欠落しているか予測できない場合は、projに相談することをお勧めします。開発者に実際に自動化できるコードを作成させることに関する管理(例:重要な要素に識別子を実装する)。これにより、長期的には実際にあなたと開発者の両方の労力を大幅に節約でき、テストの速度と信頼性も向上します。