Перейти к содержимому

Программирование на Python для тестировщиков
онлайн, начало 17августа
SQL для тестировщиков
онлайн, начало 20 августа
Программирование на C# для тестировщиков
онлайн, начало 24 августа
Тестирование производительности (JMeter)
онлайн, начало 24 августа
Фотография

Цикл (selenium+c#)


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 voolfa

voolfa

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Гудзь Сергей Иванович

Отправлено 09 Август 2018 - 19:05

Здравствуйте.У меня есть номерок в спане, нужно его ввести в цикл.Каким образом их можно свести в один тип данных?Где можно о них прочесть
IWebElement x = Browser.FindElement(By.XPath("//span[@class='tdn link nshd bl cntr m5 small']")).GetAttribute("value");

			
			for (int ppp = 0; ppp < x; ppp++)
			{
				pa = Browser.FindElement(By.LinkText("Собрать выручку!"));
				pa.Click();
			}

 

 

  • 0

#2 Noksa

Noksa

    Новый участник

  • Members
  • Pip
  • 66 сообщений
  • ФИО:Александр

Отправлено 10 Август 2018 - 04:53

GetAttribute(string attr) - возвращает не элемент, а стринг.

 

Только ваш цикл всё равно не будет работать в таком виде, потому что в нём вы будете всегда находить один и тот же элемент.

var x = Browser.FindElement(By.XPath("//span[@class='tdn link nshd bl cntr m5 small']")).GetAttribute("value");
int.TryParse(x, out var intX);
if (intX == 0) throw new Exception($"Алярм!!! Спан не распарсился! Парсили значение \"{x}\"");
for (var ppp = 0; ppp < intX; ppp++)
  {
    pa = Browser.FindElement(By.LinkText("Собрать выручку!")); // эта строка будет каждый раз находить один и тот же элемент
    pa.Click();
  }

Проще сделать так, без лишних велосипедов. При необходимости допилить локатор.

var elements = Browser.FindElements(By.LinkText("Собрать выручку!")).ToList();
elements.ForEach(w => w.Click()); 

  • 0

#3 voolfa

voolfa

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Гудзь Сергей Иванович

Отправлено 12 Август 2018 - 20:49

 

GetAttribute(string attr) - возвращает не элемент, а стринг.

 

Только ваш цикл всё равно не будет работать в таком виде, потому что в нём вы будете всегда находить один и тот же элемент.

var x = Browser.FindElement(By.XPath("//span[@class='tdn link nshd bl cntr m5 small']")).GetAttribute("value");
int.TryParse(x, out var intX);
if (intX == 0) throw new Exception($"Алярм!!! Спан не распарсился! Парсили значение \"{x}\"");
for (var ppp = 0; ppp < intX; ppp++)
  {
    pa = Browser.FindElement(By.LinkText("Собрать выручку!")); // эта строка будет каждый раз находить один и тот же элемент
    pa.Click();
  }

pa = Browser.FindElement(By.LinkText("Собрать выручку!")); // эта строка будет каждый раз находить один и тот же элемент

сюда программа не доходит. Все равно в  переменную х не пишется спан


  • 0

#4 Noksa

Noksa

    Новый участник

  • Members
  • Pip
  • 66 сообщений
  • ФИО:Александр

Отправлено 13 Август 2018 - 05:36

pa = Browser.FindElement(By.LinkText("Собрать выручку!")); // эта строка будет каждый раз находить один и тот же элемент

сюда программа не доходит. Все равно в  переменную х не пишется спан

 

 

Что значит программа не доходит? Логи, ошибки?

Гадать на кофейной гуще не хочется.

 

И я не понял, вы хотите в переменную спан записать, или его значение?


  • 0

#5 voolfa

voolfa

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Гудзь Сергей Иванович

Отправлено Вчера, 20:58

 

pa = Browser.FindElement(By.LinkText("Собрать выручку!")); // эта строка будет каждый раз находить один и тот же элемент

сюда программа не доходит. Все равно в  переменную х не пишется спан

 

 

Что значит программа не доходит? Логи, ошибки?

Гадать на кофейной гуще не хочется.

 

И я не понял, вы хотите в переменную спан записать, или его значение?

 

Выводит сообщение что спан не распарсен. хpath указан верно


  • 0

#6 Noksa

Noksa

    Новый участник

  • Members
  • Pip
  • 66 сообщений
  • ФИО:Александр

Отправлено Сегодня, 04:54

Значит у вас там не инт в атрибуте "value"


  • 0


Selenium 2.0: стартовый уровень
онлайн, начало 7 сентября
Программирование на Java для тестировщиков
онлайн, начало 7 сентября
Автоматизация функционального тестирования
онлайн, начало 31 августа
Selenium WebDriver: полное руководство
онлайн, начало 14 сентября



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале