如何将第一个元素转换为try块中的String?
我也尝试过转换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++;
}
答案 0 :(得分:3)
First()
需要bool
参数,但您要提供string
。你需要添加条件
First(e => e.FindElement(By.CssSelector("div > div:nth-child(1) > span")).Text.equals(parameterToCompare));
无法将类型字符串转换为Bool
表示在预期string
时您已经bool
,而不是相反。
答案 1 :(得分: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");
答案 2 :(得分: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");