2016-10-16 5 views
0

私のプログラムをウェブページに置いて、記事内の特定のtagNameが表示されるまで待ちます。問題は、記事をチェックするにはセレンをクリックする前に2つのtagNamesが含まれていることを確認する必要があります。私のコード設定は今どこにでもありません。それはページ上に置かれているだけで、私が見つけようとしているのと同じメインタグ名を持つ記事が複数あるので疑いがあります。セレン - 同一の区別<articles>、C#

<article> 
    <div class ="inner-article"> 
     <a href ="/shop/shirts/iycbmgtqw/x9vdawcjg" style="height:150px;"> 
     <img alt="Xrtqh7ar444" height="150" src="//d17ol771963kd3.cloudfront.net/120885/vi/xrTQH7Ar444.jpg" width="150"> 
     </a> 
     <h1> 
     <a href="/shop/shirts/iycbmgtqw/x9vdawcjg" class="name-link">EXAMPLE_CODE</a> 
     </h1> 
     <p> 
     <a href="/shop/shirts/iycbmgtqw/x9vdawcjg" class="name-link">EXAMPLE_COLOUR</a> 
     </p> 
    </div> 
</article> 

このページのその他の項目はすべて同じクラスであり、一部のタグ名は同じです。記事に2つのtagNamesの特定の組み合わせがあるときに検索したいと思います。私はxPathがオプションであることを認識していますが、アイテムの名前が唯一利用可能な情報であるxPathを知る前にコード化したいと思います。 textBox12.Textは "EXAMPLE_CODE" である

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromMinutes(10)); 


IWebElement test = driver.FindElement(By.TagName(textBox12.Text)); 
test.Click(); 

:ここ

そして、私は現時点でで働いていたコードです。私は、WebDriverがtagName "EXAMPLE_CODE"を持つ要素が2つ以上あり、最初に "EXAMPLE_CODE"を探して2次: "EXAMPLE_COLOUR"を確認する方法があるので、WebDriverが何もクリックしないと仮定して正しいですか? ?

ありがとうございます!

答えて

0

By.TagNameを間違って使用しています。タグは、検索しようとしている要素の型を参照します。この場合、リンクは 'a'です。またはdivの場合はdivです。リンクのためにタグで見つけても正しい方法は - By.TagName("a")です。

テキストを一致させる必要があり、xpathを使用する必要があります。コードがユニークであると仮定すると、試してみるべきです。

XPathは、コードのhrefを取得する - //div[class='inner-article']/h1/a[.=EXAMPLE_CODE]

XPathは、色のhrefを取得するには - 答えを//div[class='inner-article']/h1/a[.=EXAMPLE_CODE]/following-sibling::a

+0

感謝を!それは意味がある、私はxPathを使用してみます。私がまだ混乱しているのは、両方のxpathを使用して選択するWeb要素を判断するコードを設定する方法です。 –

+0

@ClarkMcMaster何があなたを引きつけているかによって、より具体的になることができますか? – Grasshopper

+0

これは私のコードが今のようになります: –

関連する問題