java - 如果元素类型为,如何使用 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");
但它没有工作。
还有什么其他可能的方法可以直接关注文本框并能够在其上发送键?我还希望能够在您获得参考后检查它是否具有价值。
谢谢。
解决方案
您可以尝试不同的替代方案,例如:使用 CSS 选择器
WebElement someElement = driver.findElement(By.cssSelector(".ocx_style"));
或者,输入用户名后只需按 TAB
WebElement webElement = driver.findElement(By.xpath("Xpath of UserName"));
webElement.sendKeys(Keys.TAB);
推荐阅读
- python - 无法删除 pandas DataFrame 中的部分字符串
- ionic-framework - 为什么使用离子元素标签/组件与标准 html?
- javascript - 字符串分离和组合
- shell - 如何将输出重定向到 /dev/null 或 txt 文件
- algorithm - 如何通过二项式定理快速解决这个问题?还有其他方法吗?
- gis - 将 UTM ZONE 转换为 lat long 的最简单方法
- c# - ASP.NET Core 为特定控制器禁用 CORS
- botframework - 如何自定义 Bot Framework 网络聊天标题?
- datetime - 通过 BigQuery 库发送的时间戳对象返回错误“此字段不是记录”
- reactjs - 如何使用 Axios 从 React 中经过身份验证的 API 获取数据?