1

我可以将 C# 字符串变量传递给 xpath 选择器吗?这是一个硒单元测试。我想做这样的事情:

string myText = "foo";    
Assert.IsTrue(Browser.IsElementPresent("//option[contains(text(), $myText)]"));
4

4 回答 4

6

使用 string.Format 应该可以工作:

Assert.IsTrue(Browser.IsElementPresent(string.Format("//option[contains(text(), {0}]",myText)));
于 2012-05-08T14:26:57.477 回答
4

是的,你可以使用String.Format

string myText = "foo";    
Assert.IsTrue(Browser.IsElementPresent(String.Format("//option[contains(text(), {0})]", myText)));
于 2012-05-08T14:28:05.290 回答
0

我看到这已经得到回答,但你也可以这样做:

Assert.IsTrue(Browser.IsElementPresent(String.Format("//option[contains(text(), " + myText + ")]")));

这是可行的,因为 C# 只会将每个字符串附加到另一个字符串的末尾。

于 2012-05-09T07:46:55.330 回答
0

谢谢您的回答!我在表格中进行查找,上述解决方案对我不起作用,可能是因为我的字符串包含连字符、小数点和如下数字:“TV-8888-ZIP-54-EN-CTR.05021031”

我将字符串分配给 C# 变量 ID。我怀疑,由于小数点和数字,上面的答案失败了。使用 Nashibukasan 的回答,我必须明确添加单引号。有效的 Find 语句(从包含第一列中的 ID 字符串的同一行获取表的第三列中的值)最终看起来像这样:

value = driver.FindElement(By.XPath(string.Format("//td[contains(text()," + "'" + ID + "'" + ")]/following-sibling::td[2]"))).Text;
于 2016-05-09T19:29:05.960 回答