我如何使用ComObject導航到一個子網站
Add-Type -AssemblyName System.Windows.Forms
$woop=New-Object -ComObject 'InternetExplorer.Application'
$woop.Visible=$true
$woop.Navigate("Link"/span>)
開始-睡眠 5;
$woop.document.IHTMLDocument3_getElementByID("Username-ID").value=$username。
$woop.document.IHTMLDocument3_getElementByID("密碼-ID").value=$password。
$woop.document.IHTMLDocument3_getElementByID("Loggin Button") .Click()
開始-睡眠 20 #20 秒計時器,等待頁面完全加載。
$woop.document.IHTMLDocument3_getElementByID("NewSiteContent-ID") .Click()
這段代碼對我來說非常有效,并將我帶到了新的子網站。 然而,在我登錄網站后,我無法使用 ComObject .Navigate到這個新網站,因為我沒有在任何地方存盤會話。
我的問題是:如果不使用Invoke Request,這個問題是否有解決辦法?
對于這整個主題,我找到了一個非常好的指南這里
在這個網站的結尾處,用戶展示了可能的事情,比如說:
現在,我們有了一個很好的平臺,可以讓我們的客戶在我們的網站上看到我們的產品。
現在我們已經登錄了,我們可以。
將$currentDocument變數設定為$ieObject.Document,因為現在的值是不同的,因為已經加載了一個新的頁面。
通過探索網頁決議出我們需要的資訊。
自動尋找一個特定的帖子 但是由于某些原因,我無法完成這個步驟。
我每次都得到同樣的錯誤。
你不能在一個空值運算式上呼叫一個方法 我的猜測是,它不能在空值運算式上呼叫一個方法。
我的猜測是,它無法到達 ID 標簽,因為 ComObject 仍然在舊的登錄網站上,因為我沒有在登錄網站后導航到它提供的新鏈接。
有什么解決方案/想法嗎?
Update 1.) 你可以用
示例。ComObjectName.Windows()。
顯示你的ComObject的狀態。
我看到LocationURL和LocationName都指向登錄后的(登錄成功的會話)子站點。
這意味著用新網站重繪 你的ComObject的代碼起作用了。
$currentdocument = $woop.document
uj5u.com熱心網友回復:
這就是問題的關鍵。你不能直接到達iframe中的元素。你需要先獲得iframe,然后使用contentWindow.document來獲得iframe中的元素。
例如,你可以使用下面的代碼來到達一個iframe中的元素:
$ie.document.getElementById('iframeId') 。 contentWindow.document.getElementById(' elementId')。
你可以根據你的實際情況來改變代碼。
參考鏈接:
(1) HTMLIFrameElement.contentWindow
。轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/320212.html
標籤:
上一篇:使用VBA鎖定現有的IE視窗標簽
下一篇:水平時間線在IE瀏覽器上不作業
