2012-04-11 13 views
2

私は<a href="/address_shops/">Адреса магазинов</a>を持っています。テキストを保存したいのですが、このリンクをクリックして、このテキストがヘッダーに含まれているページを確認してください。だから私はxpathで要素を見つけようとしました。そして、selenium.getTextは正しい結果を得ましたが、selenium.clickは別のリンクに行きます。私はどこで間違いを犯したのですか?前もって感謝します!selenium.get.Textとselenium.clickでxpathを使用する

String m_1 = selenium.getText("xpath=html/body/div[3]/div[2]/div[1]/h4[1]"); 
    selenium.click("xpath=html/body/div[3]/div[2]/div[1]/h4[1]"); 
    selenium.waitForPageToLoad("30000"); 
    assertTrue(selenium.getText("css=h3").contains(m_1)); 

ページ:のhttp://www.svyaznoy.ru/map/


再開: xpath=//a[@href='/address_shops/']を使用して、右の結果に

を取得xpath=//descendant::a[@href='/address_shops/'][2]を使用したりcss=div.deff_one_column a[href='/address_shops/'] - 要素は、現在表示されていません xpath=//a[@href='/address_shops/'][2] - 要素が見つかりません

答えて

0

申し訳ありませんが、ページのリンクに気付きませんでした。 2番目のリンクのCssは、css=div.deff_one_column a[href='/address_shops/']

+0

によってリンク自体を取得し、それは動作します! – newbie

1

式の始めにスラッシュを入れます。私はまったく驚いています。最初のスラッシュは「ルートノードで始まる」という意味です。

また、<h>の代わりに<a>要素を選択することをお勧めします。ときどき動作し、時には誤操作でもあり、クリックがまったく何もしないことがあります。できるだけ具体的になるようにしてください。

これを試してください。

String m1 = selenium.getText("xpath=/html/body/div[3]/div[2]/div/h4/a"); 
selenium.click("xpath=/html/body/div[3]/div[2]/div/h4/a"); 
selenium.waitForPageToLoad("30000"); 
// your variable is named m1, but m_1 was used here 
assertTrue(selenium.getText("css=h3").contains(m1)); 

ところで、使用できるXPath式がさらに優れています。 the documentationを参照してください。となります。実際はです。単なる例では、これはあまりにも、仕事、および読み書きする方がはるかに簡単ですになります。

String m1 = selenium.getText("xpath=//a[@href='/address_shops/']"); 
selenium.click("xpath=//a[@href='/address_shops/']"); 
+1

、またはさらにセレニウム。クリック( "link =" + m1); –

+0

@Slanec "あなたの変数の名前はm1ですが、m_1はここで使用されました" - 申し訳ありませんが、この投稿を数回編集してください。実際に私は持っています – newbie

+0

@AlehDouhi私はこのページに2つのリンクがあるので、私はこれを使用することはできませんが、私は2番目を確認する必要があります – newbie

関連する問題