繁体   English   中英

xpath选择器中的C#变量

[英]C# variable in an xpath selector

我可以将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.Format

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。 我怀疑以上答案由于小数点和数字而失败。 使用Nashibukasan的答案,我必须显式添加单引号。 可用的Find语句-从包含第一列ID字符串的同一行中获取表的第三列中的值-最终看起来像这样:

value = driver.FindElement(By.XPath(string.Format("//td[contains(text()," + "'" + ID + "'" + ")]/following-sibling::td[2]"))).Text;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM