0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 7

Ввод значений в таблицу Selenium WebDriver

15.01.2014, 12:30. Показов 5919. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помогите. Весь интернет проверил. Вторую неделю мучаюсь.

Пишу автотесты.
браузер Хром
Имеется пустая таблица, необходимо ввести данные в ячейки таблицы
Одна ячейка заполнена, код страницы ее:
HTML5
1
2
3
4
5
6
<table>
 <tr>
  <td>
    <div class=...>
     <div class=PPTCellConText> 45 </div> 
...
а код пустой ячейки:
HTML5
1
2
3
4
5
<table>
 <tr>
  <td>
  </td>
...
Каким образом это сделать в С#?
Данные из заполненной ячейки достать могу через getText(), а ввести данные не могу.
Прошу помогите.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.01.2014, 12:30
Ответы с готовыми решениями:

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

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

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

12
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
15.01.2014, 19:52
Насколько я знаю, Selenium повторяет действия пользователя. Пользователь ведь не может вводить в обычную таблицу table/tr/td данные. Зачем вам это проверять тогда?
0
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 7
15.01.2014, 19:55  [ТС]
Пишу автотесты на C# + WebDriver. Мне необходимо ввести в поле какое-либо значение, а затем сохранить изменения
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
16.01.2014, 08:31
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Remote;
 
namespace Ghost
{
    class Program
    {
        static void Main(string[] args)
        {
            const string text = "IE - УГ";
            IWebDriver driver = new FirefoxDriver();
            driver.Navigate().GoToUrl(new Uri("http://htmlbook.ru/html/table"));
            RemoteWebElement ieElement = (RemoteWebElement)driver.FindElement(
                By.CssSelector(".ie"));
            IJavaScriptExecutor jsEngine = driver as IJavaScriptExecutor;
            jsEngine.ExecuteScript("$(arguments[0]).text(arguments[1]);", ieElement, text);
            driver.Close();
        }
    }
}
0
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 7
16.01.2014, 12:14  [ТС]
Что-то не то... Либо я не понимаю...(
Перед тем, как внести в ячейку данные, кликаю по ней два раза, через код С#, добираюсь при этом до ячейки через xPath (//table/tr[]/td[])

Вот как после клика внести в эту ячейку значение?
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
16.01.2014, 12:17
А зачем на нее кликать? Да, вы действительно не понимаете.
0
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 7
16.01.2014, 12:35  [ТС]
А как иначе? При двойном щелчке на нее - она становится активна для ввода
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
16.01.2014, 12:50
Potursak, ячейка таблицы не может принимать фокус ввода.
0
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 7
16.01.2014, 12:58  [ТС]
[QUOTE=Potursak;5642161]
Одна ячейка заполнена, код страницы ее:
HTML5
1
2
3
4
5
6
<table>
 <tr>
  <td>
    <div class=...>
     <div class=PPTCellConText> 45 </div> 
...
а код пустой ячейки:
HTML5
1
2
3
4
5
<table>
 <tr>
  <td>
  </td>
...
Тогда, как из кода 2 получить код 1?
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
16.01.2014, 13:27
C#
1
jsEngine.ExecuteScript("arguments[0].innerHTML = arguments[1];", ieElement, htmlText);
1
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 7
16.01.2014, 14:01  [ТС]
спасибо, значения ввелись.

но теперь косяк в другом, данные ввелись, но они
- не сделались по левому краю
- если вводить значения в ручную, то к ним добавляется два нуля через запятую (т.е. 45 -> 45,00), а так это не сделалось
- и еще, если потом проводим суммирование, то эти значения исчезают...
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
17.01.2014, 09:27
Potursak, Может вы приведете более полный пример страницы (который работает так как вам нужно)? Тогда дело пойдет быстрее.
0
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 7
20.01.2014, 09:53  [ТС]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<tr id="row_2_TabSheet17243" style="height: 25px;">
    <td id="c_2_0_TabSheet17243" class="PPTSCell_6_TabSheetModel31219_TabSheet17243 PPTSCell PPTSLeftHeader" style="border-right-width: 1px !important; border-right-style: solid !important; border-right-color: rgb(187, 187, 187) !important; height: 25px; width: 245px; min-width: 245px; max-width: 245px;">
        <div class="PPTSCellContent PPTSCellContent_6_TabSheetModel31219_TabSheet17243 PPTSCellLeft" style="max-height: 24px; max-width: 245px; width: 245px;">
             <div class="PPTSCellConText" style="padding-right: 30px; margin: 5px 0px 6px 7px; white-space: nowrap; word-wrap: break-word; max-height: 14px;">Albania
             </div>
       </div>
   </td>
   <td id="c_2_1_TabSheet17243" class="PPTSCell_7_TabSheetModel31219_TabSheet17243 PPTSCell PPTSEvenRowsCell" style="height: 25px; width: 57px; min-width: 57px; max-width: 57px;">
        <div class="PPTSCellContent PPTSCellContent_7_TabSheetModel31219_TabSheet17243 PPTSCellRight" style="max-height: 24px; max-width: 57px; width: 57px;">
             <div class="PPTSCellConText" style="padding-right: 8px; margin: 5px 0px 6px 7px; white-space: nowrap; word-wrap: break-word; max-height: 14px;">45,00
             </div>
        </div>
    </td>
    <td id="c_2_2_TabSheet17243" class="PPTSCell_18_TabSheetModel31219_TabSheet17243 PPTSCell PPTSEvenRowsCell" style="height: 25px; width: 57px; min-width: 57px; max-width: 57px;">
    </td>
приведен код, в котором заголовочная строка Albania, и затем две ячейки, первая со значением 45,00, а вторая пустая
во вторую необходимо внести значение, такого же формата, что и в первой, и при дальнейших действиях, это значение сохранилось...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.01.2014, 09:53
Помогаю со студенческими работами здесь

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

Selenium webdriver +C#, не хочет дружить с Google Chrome
Доброго времени суток. Столкнулся с такой проблемой, не могу selenium webdriver подружить с Chrome. Давно не работа с selenium и за это...

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

Как преобразовать значение из Selenium WebDriver в int?
String priceStr; List&lt;IWebElement&gt; SearchHalava = Browser.FindElements(By.CssSelector(&quot;td&quot;)).ToList(); for (int...

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


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

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

Новые блоги и статьи
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru