C#文字列変数をxpathセレクターに渡すことはできますか?これはセレン単体テスト用です。私はこのようなことをしたい:
string myText = "foo";
Assert.IsTrue(Browser.IsElementPresent("//option[contains(text(), $myText)]"));
string.Formatを使用すると機能するはずです:
Assert.IsTrue(Browser.IsElementPresent(string.Format("//option[contains(text(), {0}]",myText)));
string myText = "foo";
Assert.IsTrue(Browser.IsElementPresent(String.Format("//option[contains(text(), {0})]", myText)));
これはすでに回答済みですが、次のこともできます。
Assert.IsTrue(Browser.IsElementPresent(String.Format("//option[contains(text(), " + myText + ")]")));
これが機能するのは、C#が各文字列を他の文字列の末尾に追加するだけだからです。
ご回答ありがとうございます!テーブルで検索を実行していましたが、上記の解決策が機能しませんでした。おそらく、文字列にハイフン、小数点、および「TV-8888-ZIP-54-EN-CTR.05021031」のような数字が含まれていたためです。
文字列をC#変数IDに割り当てました。上記の答えは、小数点と数字が原因で失敗したと思います。ナシブカさんの答えを使って、一重引用符を明示的に追加する必要がありました。動作中のFindステートメント(最初の列にID文字列を含む同じ行からテーブルの3番目の列の値を取得する)は、次のようになります。
value = driver.FindElement(By.XPath(string.Format("//td[contains(text()," + "'" + ID + "'" + ")]/following-sibling::td[2]"))).Text;