我可能花了8个小时试图解决这个问题,但我经常失败。我已经搜索了一个时代的解决方案
我试图通过使用xpath(c#selenium libraries)的部分id匹配来找到一个selenium元素。以下工作完全正常。部分文本是sel_1-rowse1
IWebElement elem = wait5.Until(x => x.FindElement(By.XPath("//a[contains(@id,'sel_1-rowsel')]")));
但是,当我想使用名为partial的变量时,这不起作用
string partial = "sel_1-rowse1";
IWebElement search = wait.Until(x => x.FindElement(By.XPath(String.Format("//a[contains(@id,'{0}')]", partial))));
或
IWebElement search = wait.Until(x => x.FindElement(By.XPath(String.Format("//a[contains(@id,{0})]", partial))));
我试过单引号双引号和转义字符。但是无法弄清楚这一点。我甚至无法提供错误,因为它获取了有效的ID。大脑严重耗尽。
答案 0 :(得分:3)
只是观察,第一个示例元素id以小写字母结尾' L' (所以l)而第二个是数字1.可能只是一个复制粘贴错误,但值得问......
答案 1 :(得分:1)
partial
是C#中的保留关键字。
将partial
重构为其他内容(不是由C#保留),你应该是金色的。