2016-12-07 171 views
1

如何将第一个元素转换为try块中的字符串?无法将字符串转换为Bool

我试图转换ToString()以及。这也是抛出错误。

foreach (var column in elementIndex) 
{ 
    try 
    { 
     columnHeaders[index] = driver.FindElements(By.CssSelector("#columntable" + table.TableID + " > div:nth-child(" + column + ")")).First(e => e.FindElement(By.CssSelector("div > div:nth-child(1) > span")).Text);      
    } 
    catch 
    { 
     columnHeaders[index] = driver.FindElement(By.XPath("//div[@id='columntablegrid']/div[" + column + "]/div/div")).Text; 
    }      
    index++; 
} 
+2

什么错误它在升起吗? – Doruk

回答

3

First()需要bool参数,但你给它string。您需要添加条件

First(e => e.FindElement(By.CssSelector("div > div:nth-child(1) > span")).Text.equals(parameterToCompare)); 

不能转换字符串类型为BOOL

意味着你已经有stringbool的预期,而不是其他方式。

2

我相信你的问题是在这里

First(e => e.FindElement(By.CssSelector("div > div:nth-child(1) > span")).Text);

你需要像这样

First(e => e.FindElement(By.CssSelector("div > div:nth-child(1) > span")).Text == "your condition to bring back the first element");

+0

谢谢大家!听起来很清楚.. – ChanGan

+0

@ChanGan然后至少upvote有用的帖子 – rbr94

+0

谢谢..我做到了。 – ChanGan

1

您需要在您的First条款添加一个条件:

driver.FindElements(By.CssSelector("#columntable" + table.TableID + " > div:nth-child(" + column + ")")) 
     .First(e => e.FindElement(By.CssSelector("div > div:nth-child(1) > span")).Text == "condition");