potursak
(Potursak)
11.Февраль.2014 07:33:41
#1
Прошу помогите!
Необходимо ввести значения в таблицу
Пробовал через:
IWebElement web = PPTest.FindWebElement(new WebItem("//table[@class='PPTS PPTSNoGrid']//tr[3]/td[3]", WebItemTypes.XPath));
web.Click();
web.SendKeys("11");
не получается.
Пробовал
RemoteWebElement ieElement = (RemoteWebElement)PPTest.Browser.FindElement(By.XPath("//table[@class='PPTS PPTSNoGrid']//tr[3]/td[3]"));
IJavaScriptExecutor jsEngine = PPTest.Browser as IJavaScriptExecutor;
jsEngine1.ExecuteScript("arguments[0].innerHTML = arguments[1];", ieElement1, "11");
значение вводится, но после выполнения дальнейших операций новые введенные значения никак не воспринимаются, после нажатия кнопки Обновить, они совсем исчезают.
Привожу HTML-код ячейка, которая уже имеет значение
<td id="c_2_1_TabSheet15144" class="PPTSCell_7_TabSheetModel37461_TabSheet15144 PPTSCell PPTSEvenRowsCell" style="height: 25px; width: 57px; min-width: 57px; max-width: 57px;">
<div class="PPTSCellContent PPTSCellContent_7_TabSheetModel37461_TabSheet15144 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_TabSheet15144" class="PPTSCell_8_TabSheetModel37461_TabSheet15144 PPTSCell PPTSEvenRowsCell" style="height: 25px; width: 57px; min-width: 57px; max-width: 57px;">
</td>
vmaximv
(vmaximv)
11.Февраль.2014 08:08:50
#2
Как вам отвечали уже здесь - тайпать в td не имеет смысла, тем более в хроме с синтетическими эвентами.
К тому же тему вы создали “Ввод значений в div” - но по-прежнему в приведенном коде тайпаете в td.
potursak
(Potursak)
11.Февраль.2014 08:19:11
#3
тогда каким образом ввести значение? к тому же div у td добавляется лишь при вводе значения (при ручном вводе)
potursak
(Potursak)
11.Февраль.2014 08:36:05
#5
не получается.
Даже очистить уже заполненную ячейку не выходит, только лишь кликается на нее
string n = "45,00";
IWebElement web = PPTest.FindWebElement(new WebItem("//table[@class='PPTS PPTSNoGrid']//div[div='" + n + "']", WebItemTypes.XPath));
web.Click();
web.Clear();
vmaximv
(vmaximv)
11.Февраль.2014 08:43:53
#6
Чтойто?
ЗЫ: Клир - тема отдельная. Вы сначала тайпа добейтесь.
potursak
(Potursak)
11.Февраль.2014 08:47:27
#7
Ячейка по значению,
либо
IWebElement web = PPTest.FindWebElement(new WebItem("//table[@class='PPTS PPTSNoGrid']//tr[4]/td[2]/div/div", WebItemTypes.XPath));
vmaximv
(vmaximv)
11.Февраль.2014 08:55:45
#8
potursak:
Ячейка по значению,
Это не валидный xpath[quote=“potursak, post:7, topic:4178”]
//table[@class=‘PPTS PPTSNoGrid’]//tr[4]/td[2]/div/div
[/quote]
Ну ок - до дива добрались. Теперь нужно определить следующие моменты:
Действительно ли нужно тайпать именно в этот див. Руками кликаем в цел, когда появляется контрол с фокусом - инспектим его. Особенное внимание уделяем атрибуту contenteditable.
Если п.1==true - говорите версию хром_драйвера+хрома+селениума
potursak
(Potursak)
12.Февраль.2014 05:37:21
#11
как ему присвоить значение?
vmaximv
(vmaximv)
12.Февраль.2014 05:43:17
#12
Зачем? Вы можете это сделать руками?
potursak
(Potursak)
12.Февраль.2014 08:19:45
#13
А нужно через авто-тест,
так не работает
IWebElement web2 = PPTest.FindWebElement(new WebItem("//table[@class=‘PPTS PPTSNoGrid’]//tr[5]/td[3]", WebItemTypes.XPath));
web2.Click();
web2.SendKeys(rnd_cell.Next(0, 100).ToString() + OpenQA.Selenium.Keys.Enter);
vmaximv
(vmaximv)
12.Февраль.2014 08:32:38
#14
Перечитайте ответы в этой теме. Складывается впечатление, что вы их просто не замечаете.
5am
(5am)
12.Февраль.2014 08:50:06
#15
сделать send keys в div не получится.
скорее всего, при клике в этом диве появляется инпут
вам сначало надо кликнуть в див
потом найти инпут
//%xpath_for_div%//input
и в него сделать send keys
potursak
(Potursak)
12.Февраль.2014 08:51:50
#16
vmaximv:
атрибут contenteditable
отсутствует
про send keys в div не получится.
уже понял
potursak
(Potursak)
12.Февраль.2014 08:55:29
#17
но даже в заполненной ячейке инпут отсутствует
<td id="c_2_1" class="PPTSCell_7 PPTSCell PPTSEvenRowsCell" style="height: 25px;">
<div class="PPTSCellContent PPTSCellContent_7 PPTSCellRight" style="max-height: 24px;">
<div class="PPTSCellConText" style="padding-right: 8px;">45,00</div>
</div>
</td>
5am
(5am)
12.Февраль.2014 10:25:53
#19
после этого, даже не знаю что добавить
potursak
(Potursak)
13.Февраль.2014 04:59:13
#20
Всем спасибо, разобрался, получилось
IWebElement WebCell = PPTest.FindWebElement(new WebItem("//table[@class='PPTS PPTSNoGrid']//tr[3]/td[3]", WebItemTypes.XPath));
WebCell.Click();
RemoteWebElement webElement = WebCell as RemoteWebElement;
RemoteWebDriver webDriver = webElement.WrappedDriver as RemoteWebDriver;
webDriver.Mouse.DoubleClick(webElement.Coordinates);
webDriver.Keyboard.PressKey(rnd_cell.Next(0, 100).ToString() + OpenQA.Selenium.Keys.Enter);