首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动填充Textboxes (IE ComObject)

自动填充Textboxes (IE ComObject)
EN

Stack Overflow用户
提问于 2015-10-14 11:34:24
回答 3查看 4.4K关注 0票数 11

我试图自动化一个网站,填充一些文本框,然后单击一个按钮,

我可以在第一页(登录)和提交按钮中找到相关的元素,所以我通过了登录阶段,我的问题是用蒙面文本框在某个页面中找到元素,我附上了三个步骤的快照,以及对象的DOM图像。

代码语言:javascript
复制
$IE = New-Object -ComObject InternetExplorer.Application
$URL = 'https://somewebsite/ecp/?rfr=owa&p=PersonalSettings/Password.aspx'
$IE.Visible = $true
$IE.Navigate($URL)
While ($IE.Busy -eq $true) {Start-Sleep -Milliseconds 2000} 

$ie.Document.getElementById('username').value = "username"
$ie.Document.getElementById('password').value = "password"
$Submit = $ie.Document.getElementsByTagName('Input') | ? {$_.Type -eq "Submit"}
$Submit.click()

到目前为止,我的问题从里面的页面开始,我只是找不到密码字段的文本框元素,

下面还有这些元素的DOM快照:

我真的很感谢你的帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-01 10:37:33

好的,我找到了:)

问题是这个网站有两个iframe标签,一个在另一个里面,

代码语言:javascript
复制
$IFrame = $ie.Document.getElementsByTagName('iframe').item(0)
$IFrame = $IFrame.contentWindow.document.getElementsByTagName('iframe').item(0)
$PasswordSlab = $IFrame.contentWindow.document.getElementById('passwordSlab')
$PasswordSlab.document.getElementById('txtOldPwd').value = $OldPassword
$PasswordSlab.document.getElementById('txtNewPwd').value = $NewPassword
$PasswordSlab.document.getElementById('txtConfirmPwd').value = $NewPassword
$PasswordSlab.document.getElementById('save').click()

谢谢大家

票数 0
EN

Stack Overflow用户

发布于 2015-10-30 08:11:08

在尝试automate a file upload on sharepoint时,我遇到了同样的问题。关键是上传表单是在一个新的框架内打开的。

代码语言:javascript
复制
<iframe id="Dlg..." class="ms-dlgFrame" src="https://.../Upload.aspx?List=..."></iframe>

因此,为了获得输入字段,我必须查看每个打开的框架,并选择一个位置良好的框:

代码语言:javascript
复制
for($i=0;$i -lt $ie.Document.frames.length;$i++){
   if( $ie.Document.frames.item($i).location.href -match 'upload.aspx' ){
       $frm=$ie.Document.frames.item($i)}
 }

从那时起,我就能够锁定输入字段:

代码语言:javascript
复制
$frm.document.body.getElementById("txtOldPwd") 
票数 1
EN

Stack Overflow用户

发布于 2015-10-28 16:08:08

使用UI Automation.there是可能的,我们可以很容易地使用自动化ID检测元素,并且可以轻松地执行读/写操作。但我不知道您是否喜欢使用UI自动化,如果可以的话,我想我可以帮助您解决问题。在用户界面自动化方面有许多选择,例如

1)用户界面自动化。

2)白色

3)watin.etc.,

如果你对任何一个框架都满意的话,我想我可以帮你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33124235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档