首页 > 解决方案 > 如果元素类型为,如何使用 Selenium(用于 Java)定位输入文本框

问题描述

我正在尝试使用 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");但它没有工作。

还有什么其他可能的方法可以直接关注文本框并能够在其上发送键?我还希望能够在您获得参考后检查它是否具有价值。

谢谢。

标签: javaseleniumelementactivexocx

解决方案


您可以尝试不同的替代方案,例如:使用 CSS 选择器

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

或者,输入用户名后只需按 TAB

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

推荐阅读