Как настроить целевое поле ввода с помощью Selenium (для Java), если тип элемента <object></object> - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь войти на конкретный сайт с помощью Selenium, однако я не могу напрямую ссылаться на ввод пароля из-за этого типа элемента html. Код ниже на самом деле является элементом ввода текста.

<object tabindex="2" class="ocx_style" id="ocx_passwordChar_login" classid="CLSID:123ABCD-34AC-CY23-ABC1-6423F8C40100" codebase="/ocx/APPIE32.cab#version=1,0,0,1" onkeydown="authenticateUser();">
 <param name="maxlength" value="20"/>

(я только что предоставил фиктивные значения для атрибута, но формат тот же)

Кажется что это форма ActiveX. Я попытался использовать обычный passwd.findElementById("ocx_passwordChar_login");, но он не сработал.

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

Спасибо.

1 Ответ

1 голос
/ 26 февраля 2020

Вы можете попробовать различные варианты, такие как: Использовать CSS Селектор

WebElement someElement = driver.findElement(By.cssSelector(".ocx_style")); 

ИЛИ, Просто нажмите TAB после ввода имени пользователя

WebElement webElement = driver.findElement(By.xpath("Xpath of UserName"));
webElement.sendKeys(Keys.TAB);
...