希望你们都很好。我对selenium很新,还有一个完整的新手堆栈溢出,我希望我不违反任何规则。
我正在尝试使用以下
创建测试框架和一些测试c#,selenium webdriver,specflow,nunit
我目前正在针对sql server DB运行查询以检索一些文本,然后尝试使用该文本来验证并在网站上搜索该元素。我遇到的问题是该网站有元素html编码
例如:
从数据库中检索的数据可能类似于 - “氧化铝MB中国冶金等级交付......”
网站上的元素如下 -
<span class="com">Alumina MB China metallurgical grade delivered duty paid RBM/tonne</span>
有谁知道我如何将从DB检索到的数据解析为findElement命令,以便在网站上包含
期待您的回复。
非常感谢 Suban
答案 0 :(得分:1)
尝试使用 System.Web.HttpUtility.HtmlDecode
来转义html字符它对我有用:
var escaped = System.Web.HttpUtility.HtmlDecode(".//span[text()='Alumina MB China metallurgical grade delivered duty paid RBM/tonne']");
IWebElement element = driver.FindElement(By.XPath(escaped));
答案 1 :(得分:0)
您应首先将xpath字符串中的$nbsp;
的所有实例替换为,然后搜索
答案 2 :(得分:0)
IWebElement element = driver.FindElement(By.XPath("//span[contains(@class'com') and normalize-space(translate(., '\u00A0', ' '))='Alumina MB China metallurgical grade delivered']"));
说明:
使用xpath查找包含字符串span
的类的com
元素,从中获取文本(.
)替换所有 
个字符(即unicode {{1 }}具有常规\u00A0
字符,并剥离前导和尾随空格(在您的情况下可能不需要最后一部分)。
注意:space
之后应该放在单引号中的字符串应该只包含常规空格。