4

私はこのコード部分を使用しました:

https://stackoverflow.com/a/16209027/1063093

私の場合、edit という単語が href にあるリンクを選択したいと思います

IWebElement link = driver.FindElementByCssSelector("[href*='edit']");

私の記憶が正しけれ*=ば、href に edit という単語が含まれているかどうかを確認してください。
問題は、この行を実行すると、次のエラーが発生することです。

ここに画像の説明を入力

しかし、リンクは存在します:

ここに画像の説明を入力

実行時の完全な href を認識していません。そのため、柔軟にする方法を見つけて、編集という単語だけを探す必要があります。私は明らかに何か間違ったことをしていますが、何がわかりません。誰かがこれについて私を助けることができますか?

4

1 に答える 1

5

大文字と小文字が区別されます。

IWebElement link = driver.FindElementByCssSelector("[href*='Edit']");

(大文字の「E」)

MrTi の指摘のおかげで、実際には、次の方法でさらに一歩進めることができます。

IWebElement link = driver.FindElementByCssSelector("a[href^='/Users/Edit/']");

これは、「で始まる アンカー要素/Users/Edit-リンクが常にそれで始まる場合、明らかに、これは使用するより信頼性の高いセレクターになります.

あなたは「編集」という言葉しか探すことができないと指摘したので、上記はあなたにとってあまり素晴らしいものではないかもしれませんが、考えるべきことです. そもそも「編集」だけを探すのはあまり良いことではありません -> それを含む他のリンクがページにある場合はどうでしょうか?

于 2013-10-17T16:27:42.777 に答える