2017-02-14 57 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字符,並剝離前導和尾隨空白(這可能不需要在你的情況下)。

注意:在=之後的單引號中應該只包含常規空格的字符串。

相關問題