2016-05-06 6 views
0

私は自動化しているWebアプリケーションの左側にリンクのリストを持っています。 1つは「ユーザー管理」と呼ばれるメインメニュー項目を持っています。 2番目のリンクがあります。同じ名前を持っていても、別のメインアイテムのサブアイテムです。リンクのタイトルが重複していますが、どのようにして見つけられますか?

もちろん、私はリンクのタイトルでそれを識別しようとすると、常に最初のもの、私が望んでいない主なものを見つけるでしょう。私はxpathと他のいくつかのことを試みましたが、私はそれを理解できません。ここには両方のhtmlがあります。

<td id="mainleftlinkzoneover" class="mainleftlinks" width="151" title="User Management"> User Management</td> 

<td class="currentsubleftlinks" valign="top" title="User Management"> User Management</td> 

これはクラスcurrentersionftlinksの下の唯一のリンクではないことに注意してください。異なるタイトルを持つ3つの他のものがあります。

(リンクのタイトルはユーザー管理です)、(tdクラスはcurrentubleftlinksです)、それを選択してクリックすればいいと思います。

ここにご協力ください!

+0

は役に立つ以下の回答のいずれかでしたか? –

答えて

0

最初の要素のIDはです。この要素を使用して要素を見つけることができます。 CssSelectorでは "#mainleftlinkzoneover"となります

もう1つは、CssSelectorまたはXPathを再度使用することができます。 CSSで

あなたは、特定の子見つけることを試みることができます。これを試してみたXPathで".currentsubleftlinks:nth-child(2)"

を:"//td[@title='User Management']"

0

私はそれがユニークであっても、全くタイトル名を使用してお勧めしません値。私は、より構造的なアプローチが好ましいと考えています。たとえば、CSSの場合です。 CSSを使用すると、関心のある領域を徐々に絞り込むことができ、要素名の問題を避けることができます。私は完全な例を与えることができないので、この場合では、ページ全体を提供していませんでしたが、あなたが言及した要素は次のように選択することができます:最初のため

@FindBy(css = SOME_ENCLOSING_CSS + "$.currentsubleftlinks") 
private WebElement elementName; 
0

、cssSelectorとして以下を使用します。

第二のクリックcssSelectorとして以下使用する
#mainleftlinkzoneover.mainleftlinks[width^='151'] 

td.currentsubleftlinks[valign^='top'] 
関連する問題