2

私は Selenium が初めてで、XPath で要素を見つけるのに問題があります。この問題を処理しようとしましたが、時間をかけすぎて、まだ機能しません。

このサイトからのファイルのダウンロードを自動化しようとしています。

バージョン名を含む要素を検索しています。その後、それに応じてダウンロード アイコンをクリックする必要があります。

例

要素を見つけるために次のコードを書いています

var element1 = driver.FindElement(By.XPath("//*[@id='versiontable']/div[3]/a[Text()='Firefox 22.0 (Beta 2)']"));

ただし、機能しません。要素が見つかりません。

それに応じてダウンロードアイコンをクリックする必要があります。現在のバージョンのFirefoxに関連する要素をクリックする方法がわかりません。助言がありますか?

4

2 に答える 2

4

なぜあなたは使わないBy.linktextのですか?

driver.findElement(By.linkText("Firefox 22.0 (Beta 2)")).click(); 

ただし、XPath が機能しない理由は、Web ページの構造に適合していないためです。div[3]階層内の 3 つの div が次々とという意味ではなくdiv、次の階層レベルの 3 番目を意味します。代わりにこのようなものが必要になります

var element1 = driver.FindElement(By.XPath("//*[@id='versiontable']/div/div/div/a[text()='Firefox 22.0 (Beta 2)']"));
于 2013-05-26T09:33:07.503 に答える
1

まず、xpath 関数text()は小文字で記述する必要があります。
また、探しているリンク エントリは 3 番目 (3) の div ではありません。

直接ダウンロードは、div 内の class="right" のリンクであるためです。
これを試してください:

"//div[div/a[text()='Firefox 22.0 (Beta 2)']]/div[@class='right']/a"
于 2013-05-26T09:34:20.183 に答える