2015-04-20 52 views
0

我可能花了8個小時試圖弄清楚這一點,但我經常失敗。我已經搜索了一個解決方案的年齡向xpath添加字符串變量c#selenium

我想通過使用xpath(c#selenium庫)的部分id匹配找到一個硒元素。以下工作非常好。該部分文本是SEL_1-rowse1

IWebElement elem = wait5.Until(x => x.FindElement(By.XPath("//a[contains(@id,'sel_1-rowsel')]"))); 

然而,當我想用​​一個名爲局部變量,這並不工作

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

「不起作用?」怎麼樣?上面兩個例子的輸出是什麼? – Arran

+0

對不起,我的調試相當困難,因爲我無法在網絡上調試我運行該程序,不斷使用Console.Writeline查看程序中發生了什麼。接下來的兩個答覆解決了這個問題。 – Kieran

回答

3

只是一個觀察,第一示例元素的id與小寫「L」(所以升)結束,而第二個以數字1可能只是複製粘貼錯誤,但值得一問...

+0

謝謝。這是問題。花了這麼長時間纔沒有注意到1和l之間的差異。總是讓我昏昏欲睡,我可以花費多少時間在一些如此微不足道的事情上。 – Kieran

1

partial是C#中的保留關鍵字。

重構partial到別的東西(不是由C#保留),你應該是金。

+0

輝煌。這並不能解決問題,但我確實刪除了部分內容 – Kieran