Невозможно найти / заполнить текстовое поле в Selenium WebDriver с Java - PullRequest
0 голосов
/ 21 февраля 2019

<TD class=CuteEditorFrameContainer style="PADDING-BOTTOM: 2px; PADDING-TOP: 1px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px" height="100%" colSpan=2>
<IFRAME id=obj_oOpera class=CuteEdit style="BORDER-TOP: #c0c0c0 1px solid; HEIGHT: 100%; BORDER-RIGHT: #c0c0c0 1px solid; WIDTH: 100%; BORDER-BOTTOM: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BACKGROUND-COLOR: white"  frameBorder=0>
<HTML>
<HEAD>
<STYLE>BODY {
	PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px
}
</STYLE>
</HEAD>
<BODY contentEditable=true>
</BODY>
</HTML>
</IFRAME>
<INPUT id=oOpera type=hidden name=oOpera>
</TD>

Проблема Я пытаюсь заполнить поле для комментариев, но не могу из-за следующих проблем

- Поле проверки приводит меня ккод, где нет атрибутов - BODY contentEditable = true

JavascriptExecutor jse = (JavascriptExecutor) драйвер;jse.executeScript ("document.getElementsByName ('obj_oOpera') [0] .setAttribute ('type', 'text');");driver.findElement (By.xpath ( "// IFrame [@ ид = 'obj_oOpera']")) ясно ().driver.findElement (By.xpath ("// iframe [@ id = 'obj_oOpera']")). sendKeys ("Opera");

- Когда я использую атрибуты из IFRAME или INPUT теги выдает исключение Элемент не должен быть скрыт / доступен только для чтения или отключен

Другие методы, которые не сработали Смена кадра.Java Script и обычные ключи отправки

PS - я могу вручную добавить текст в текстовое поле

1 Ответ

0 голосов
/ 22 февраля 2019

Вы пытаетесь ввести значение на входе, но передаете идентификатор iframe.Просто замените его идентификатором ввода, и ваша проблема будет решена.

JavascriptExecutor jse = (JavascriptExecutor)driver; 
jse.executeScript("document.getElementsByName('oOpera')[0].setAttribute('type', 'text');"); 
driver.findElement(By.xpath("//input[@id='oOpera']")).clear(); 
driver.findElement(By.xpath("//input[@id='oOpera']")).sendKeys("Opera");

Кроме того, ваше поле ввода находится за пределами Iframe, а тело внутри Iframe не имеет элемента, поэтому оно показывает пустое тело.

...