我想要自动执行Internet Explorer。打开Internet Explorer,导航到login.live.com并将值设置到电子邮件文本框中。
这是简单的脚本:
import win32com.client
import time
IE = win32com.client.DispatchEx("InternetExplorer.Application")
IE.Visible = 1
IE.Navigate('login.live.com')
time.sleep(5)
DOC = IE.document
DOC.getElementById('i0116').value = 'test'
最后一行总是返回以下TypeError:
getElementById()只需要1个参数(给定2个)
当我尝试通过Internet Explorer的控制台添加值时,它可以正常工作。
顺便说一下。 getElementsByTagName()方法可以正常运行。
感谢您的帮助!
答案 0 :(得分:1)
好的..我为此写了一个解决方法:
DOC = IE.Document
inputs = DOC.documentElement.getElementsByTagName('input')
for field in inputs:
if field.id == 'i0116':
email = field
break
email.value = 'example@test.com'
对于浏览器自动化,我建议使用Selenium库。
答案 1 :(得分:0)
由于this回答建议你必须使用
public void Execute(IJobExecutionContext context)
{
lock (_lockObj)
{
// ... some HTTP job that can take 5 to 30 seconds ...
}
}