2017-07-08 70 views
-2

我有一个while循环使用Selenium检查网页上的字符串。返回的值与正在评估的值完全相同。但由于某种原因,这是说字符串不相等。但他们是平等的。代码如下。我已经尝试了几件事情来解决这个问题,但没有运气。我究竟做错了什么?所以基本上,IF声明是说红色不等于红色。如果语句评估错误

private void LookForString() 
     { 
      try 
      { 

       while (true) 
       { 
        IWebElement curStatus = ieDriver.FindElement(By.Id("sitestatus")); 
        if (!curStatus.Text.Equals(r.statusClosed)) 
        { 
         break; 
        } 
       } 
      } 
      catch (Exception) { RestartProgram(); } 
+5

_“这是说,字符串不相等”_ - 然后他们是不相等的。 _“但他们是平等的” - 不,他们不是。你只认为他们是。不可能解释你为什么弄错了,因为你没有提供一个可靠地再现问题的好的[mcve]。但我向你保证,C#不是随意地弄糊涂两个字符串值是否相等。 –

+0

'curStatus'和'r.statusClosed'的值是什么? –

+0

这可能是字符串中空白的问题。 'curStatus.Text'和'r.statusClosed'的示例值是什么?根据[this](https://seleniumhq.github.io/selenium/docs/api/dotnet/html/P_OpenQA_Selenium_IWebElement_Text.htm),对于'IWebElement'的'Text'属性,前导和尾随空白被删除,而其余的都崩溃了。 – Poosh

回答

-2

试试这个方法:

公共静态INT比较(STRA字符串,字符串STRB,布尔IGNORECASE)

前。 :String.Compare(s1,s2,true);

+1

这不回答这个问题。 OP说这两个字符串是相同的,但if语句不起作用。提供可能或不可以工作的替代比较方法不能回答这个问题。 – Enigmativity