2017-02-14 54 views
0

的元素希望你一切都好。我对硒很新,也是一个全新的堆栈,我希望我不会违背任何规则。使用Selenium webdriver找到具有 

我想创建一个测试框架,并使用以下

C#,硒的webdriver,specflow,NUnit的

我目前运行对SQL Server数据库的查询检索一些文字一些测试,然后尝试使用该文本来验证并搜索该网站上的该元素。我的问题是,该网站具有编码

例如元素的html:

从数据库中检索可能是这样的数据 - “交付氧化铝MB中国冶金级......”

网站上的元素如下 -

<span class="com">Alumina&nbsp;MB&nbsp;China&nbsp;metallurgical&nbsp;grade&nbsp;delivered&nbsp;duty&nbsp;paid&nbsp;RBM/tonne</span>

待办事项任何人都知道我可以如何将从数据库检索到的数据解析到findElement命令中,以便在网站上轻松找到此元素,同时它包含&nbsp;

期待您的回音。

非常感谢 Suban

+0

你可以证明你迄今为止做了什么吗? –

+0

到目前为止,我已经试过 driver.FindElement(By.Xpath(“// * [@类= 'COM' 和文本()='氧化铝  MB  中国 冶金 级 交付 责任 支付  RBM /吨']“)); – Suban

+0

你好Suban。也许替换方法可以帮助你的情况。 'string htmlString = dataBaseString。替换(“”,“ ”);' –

回答

1

尝试使用System.Web.HttpUtility.HtmlDecode逃脱HTML字符

它为我工作:

var escaped = System.Web.HttpUtility.HtmlDecode(".//span[text()='Alumina&nbsp;MB&nbsp;China&nbsp;metallurgical&nbsp;grade&nbsp;delivered&nbsp;duty&nbsp;paid&nbsp;RBM/tonne']"); 
IWebElement element = driver.FindElement(By.XPath(escaped)); 
+0

Perfect @Alex。工作!非常感谢你 – Suban

0

你首先应该更换的$nbsp;所有实例的XPath字符串来然后搜索该

0
IWebElement element = driver.FindElement(By.XPath("//span[contains(@class'com') and normalize-space(translate(., '\u00A0', ' '))='Alumina MB China metallurgical grade delivered']")); 

说明: 使用XPath找到包含字符串comspan元素,从那个(.)的文本替换所有&nbsp字符(即unicode \u00A0)与一个常规的space字符,并剥离前导和尾随空白(这可能不需要在你的情况下)。

注意:在=之后的单引号中应该只包含常规空格的字符串。

相关问题