如何只从硒中的文本中获取数字?

时间:2017-11-10 21:26:42

标签: c# selenium selenium-webdriver

在foreach循环中,如果显示元素,我将捕获该元素的一段文本。但是我只想获取元素文本中的数字(正面和负面)。

目前该文本可以读取:

+156 on same day
or
-88 on same day

我想只从这个文本中获取值,所以这应该是:

156
or
-88

我如何才能获取数字,如果减号,则来自alternativeAirportPrice.Text的负号?

public string GetAlternativeAirportPrice(By airportPriceLocator)
{
    var alternativeAirportPrices = _driver.FindElements(airportPriceLocator);

    foreach (var alternativeAirportPrice in alternativeAirportPrices)
    {
        if (alternativeAirportPrice.Displayed)
            return alternativeAirportPrice.Text;
    }
    return null;
}

2 个答案:

答案 0 :(得分:0)

尝试该代码:

SELECT
      a.id
    , a.word
    , a.fl
    , a.updated
FROM words AS a
LEFT JOIN (
      SELECT DISTINCT fk_words_id FROM examples
      WHERE MATCH(b.example,b.cite_author,b.cite_publication) AGAINST(+'some word' IN BOOLEAN MODE))
      ) b ON a.id = b.fk_words_id
WHERE a.word = :search_string
ORDER BY
      id ASC
LIMIT 0,20;

答案 1 :(得分:0)

如果你需要数字作为int而不是你的行:

return alternativeAirportPrice.Text;

你可以写:

    int r;
    int.TryParse(alternativeAirportPrice.Text.Trim().Split(' ').First(), out r);
    return r;

它适用于您编写过的两种情况。如果可能有空字符串,则可以在调用字符串方法之前检查空字符串。如果您可能有十进制数 - 只需将int更改为double。 但是因为你必须将你的方法返回类型更改为int。