2

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

    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=//descendant::a[@href='/address_shops/'][2]css=div.deff_one_column a[href='/address_shops/']、正しい結果を得る

使用xpath=//a[@href='/address_shops/']中-要素は現在表示されていません xpath=//a[@href='/address_shops/'][2]-要素が見つかりません

4

2 に答える 2

1

式の先頭にスラッシュがありません。これが完全に成功したことに少し驚いています。最初のスラッシュは「ルートノードから開始する」ことを意味します。

また、の<a>代わりに要素を選択することをお勧めします<h>。動作する場合もあれば、クリックミスの場合もありますが、クリックしても何も起こらない場合もあります。できるだけ具体的になるようにしてください。

これを試してください。

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式はさらに優れています。ドキュメントを参照してください、それは本当に役に立ちます。ほんの一例ですが、これも機能し、書き込みと読み取りがはるかに簡単です。

String m1 = selenium.getText("xpath=//a[@href='/address_shops/']");
selenium.click("xpath=//a[@href='/address_shops/']");
于 2012-04-11T10:04:52.800 に答える
0

申し訳ありませんが、ページのリンクに気づきませんでした。2番目のリンクのCSSはそのようなものにすることができますcss=div.deff_one_column a[href='/address_shops/']

于 2012-04-11T21:30:50.403 に答える