Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 22.01.2017
Сообщений: 6
1

Как преобразовать значение из Selenium WebDriver в int?

17.09.2017, 14:13. Просмотров 2442. Ответов 5


C#
1
2
3
4
5
6
7
8
9
10
11
String priceStr;
            List<IWebElement> SearchHalava = Browser.FindElements(By.CssSelector("td[class='bj bp']")).ToList();
            for (int i=0; i<10;i++)
            {
                priceStr = System.Text.RegularExpressions.Regex.Match(SearchHalava[i].Text, "[0-9][0-9]*").Value;
                textBox1.AppendText(priceStr + "\n");
                if (test < 1)
                {
                    label1.Text = "z";
                }
            }
Как преобразовать переменную SearchHalava для того, чтобы if смог сравнивать её с числом?
При конвертировании ( var test = Convert.ToInt32(SearchHalava); ) выходит ошибка:

Не удалось привести тип объекта "System.Collections.Generic.List`1[OpenQA.Selenium.IWebElement]" к типу "System.IConvertible".
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2017, 14:13
Ответы с готовыми решениями:

Как кликнуть по радиокнопке используя Selenium WebDriver?
Есть две радиокнопки &lt;input type=&quot;radio&quot; name=&quot;rb1&quot; value=&quot;1&quot;&gt; &lt;input type=&quot;radio&quot;...

Как подключить Selenium Webdriver?
Я начинающий тестеровщик, тестировать в ручную очень напряжно, рутиная работа каждый раз заполнять...

Selenium WebDriver клик по координатам
подскажите можно ли в селениуме сделать клик по координатам

Не получается подключить Selenium WebDriver
Всем привет! Смотрел видео на ютубе по selenium, там подключение происходит путем скачивания файла...

5
Администратор
Эксперт .NET
13076 / 10657 / 4399
Регистрация: 17.03.2014
Сообщений: 21,467
Записей в блоге: 1
17.09.2017, 14:50 2
SonOfRA, SearchHalava это список который бессмысленно пытаться преобразовывать в число. Нужно работать с отдельным элементом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
List<IWebElement> SearchHalava = Browser.FindElements(By.CssSelector("td[class='bj bp']")).ToList();
for (int i=0; i<SearchHalava.Count; i++)
{
    string priceStr = System.Text.RegularExpressions.Regex.Match(SearchHalava[i].Text, "[0-9][0-9]*").Value;
    int price = int.Parse(priceStr); // Преобразование
 
    textBox1.AppendText(priceStr + "\n");
    if (test < 1)
    {
        label1.Text = "z";
    }
}
0
.NET C#,ASP.NET MVC
Эксперт .NET
590 / 501 / 225
Регистрация: 16.10.2010
Сообщений: 1,902
17.09.2017, 14:59 3
Вы пытаетесь сравнить список значений с числом. Это логически не возможно, список содержит несколько элементов, к тому же в этом списке совсем не числа, в объекты типа IWebElement. Вы можете перебирать значения в цикле для того, чтобы узнать есть ли там элемент удольтворяющий вашему условию.

Если вам нужно найти элемент который будет содержать нужное число то вы можете воспользоваться LINQ

C#
1
2
3
4
if (SearchHalava.Any(e => e.Text.Equals("1")))
{
    label1.Text = "z";
}
0
0 / 0 / 0
Регистрация: 22.01.2017
Сообщений: 6
17.09.2017, 15:34  [ТС] 4
На данный момент цель программы вывести значения с сайта(смотреть первый скриншот) (https://www.bestchange.ru/inde... range=desc),записать в textBox и если значение меньше 1, то записать его в другой textBox. Это нужно проделать с первыми 10 значениями, а как это сделать мозгов не хватает.
На 2-ом скриншоте показано как работает программа при коде:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
String priceStr;
            List<IWebElement> SearchHalava = Browser.FindElements(By.CssSelector("td[class='bj bp']")).ToList();
            for (int i=0; i<10;i++)
            {
                priceStr = System.Text.RegularExpressions.Regex.Match(SearchHalava[i].Text, "[0-9].[0-9]*").Value;
 
                
                textBox1.AppendText(priceStr + "\n");
                //if (SearchHalava.Any(e => e.Text.Equals("1")))
                {
                    label1.Text = "z";
                }
            }
.

OwenGlendower, при вашем коде выходит:

"Входная строка имела неверный формат."

lvlkoo, при вашем - программа не выполняет свой функционал(смотреть третий скриншот), т.к. не выводит "z" в label1.
0
Миниатюры
Как преобразовать значение из Selenium WebDriver в int?   Как преобразовать значение из Selenium WebDriver в int?   Как преобразовать значение из Selenium WebDriver в int?  

Администратор
Эксперт .NET
13076 / 10657 / 4399
Регистрация: 17.03.2014
Сообщений: 21,467
Записей в блоге: 1
17.09.2017, 15:44 5
SonOfRA, а если вот так?
C#
1
2
3
4
5
6
7
8
9
10
11
IEnumerable<double> top10prices = Browser.FindElements(By.CssSelector("td[class='bj bp']"))
    .Take(10)
    .Select(el => double.Parse(el.Text, CultureInfo.InvariantCulture));
foreach (double price in top10prices)
{
    textBox1.AppendText(price + "\n");
    if (price < 1)
    {
        // ...
    }
}
0
0 / 0 / 0
Регистрация: 22.01.2017
Сообщений: 6
17.09.2017, 17:26  [ТС] 6
Проблема решилась! Заменив в priceStr точки на запятые, а в последствии конвертировав priceStr в double я решил свою проблему. Код получался такой:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
string priceStr;
            List<IWebElement> SearchHalava = Browser.FindElements(By.CssSelector("td[class='bj bp']")).ToList();
            for (int i = 0; i < 10; i++)
            {
                priceStr = System.Text.RegularExpressions.Regex.Match(SearchHalava[i].Text, "[0-9].[0-9]*").Value;
                priceStr = priceStr.Replace('.', ',');
                textBox1.AppendText(priceStr + "\n");
                double Conv = Convert.ToDouble(priceStr);
                if (Conv < 1)
                {
                    label1.Text = "z";
                }
            }
Благодарю всех за участие!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.09.2017, 17:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Обработка исключения в Selenium Webdriver
Работаю с Selenium Webdriver и не могу понять как в нижеидущем коде работает исключение Помогите,...

Selenium WebDriver и активный браузер
Можно ли как-нибудь с помощью Selenium WebDriver узнать url активной вкладки? Браузер до запуска...

Selenium webdriver. Получить текст
нужно получить текст из сообщения, пробовал css и xpath. Получить нужно код, VF4TW IWebElement...

Ввод значений в таблицу Selenium WebDriver
Прошу помогите. Весь интернет проверил. Вторую неделю мучаюсь. Пишу автотесты. браузер Хром...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.