我正在嘗試修復使用Selenium1.0.23打開站點和登錄的VBA。我的客戶說,除了VBA必須輸入錯誤的用戶名和密碼外,所有的事情都在他的最後,因爲該網站提供了錯誤的用戶名密碼信息。 現在我得到了腳本,並嘗試運行它,但我卡住了「參數不可選」的函數。以下是腳本:VBA函數獲取「參數不可選」錯誤
以下是有錯誤的部分。它突出了「.setVariation」部分。
Private Function setVariationOnPage(browser As SeleniumWrapper.WebDriver, variations As Scripting.Dictionary) As Long
Dim name
For Each name In variations.keys
ProductVariations.setVariation browser, variations(name)
Next name
End Function
我相信上面的函數調用是一個單獨的模塊上的另一個功能,因爲有一個模塊名稱ProductVariations和一個名爲setvariation在它的功能。
Public Function setVariation(browser As SeleniumWrapper.WebDriver, ByVal name As String, value As String)
On Error GoTo setVariationError
Dim li As WebElement
Dim lis As Collection
Set lis = getVariationListItems(browser, name)
If lis Is Nothing Then
GoTo setVariationError
Exit Function
End If
For Each li In lis
Dim link As WebElement
Set link = getLinkFromVariationListItem(li)
If LCase(Trim(getVariationValueNameFromListItem(li))) = LCase(Trim(value)) Then
If InStr(li.getAttribute("class"), "active") = 0 Then
link.Click
ScrapingUtil.waitForPageToLoad browser
If InStr(li.getAttribute("class"), "active") = 0 Then
GoTo setVariationError
End If
End If
Exit Function
End If
Next li
setVariationError:
Dim msg As String
msg = "Unable to set variation: ""{name}"" = ""{value}"""
msg = Replace(msg, "{name}", name)
msg = Replace(msg, "{value}", value)
Err.Description = msg
Err.raise 1
End Function
然後顯然這個函數調用另一個函數,該函數調用另一個函數。對它進行故障排除是非常困難的,我真的需要幫助。要傳遞
setvariation功能需要3個參數。根據上面它通過兩個「瀏覽器,變體(名稱)'。 – HA560
基於這樣一個事實,即這些鍵被稱爲「名稱」,也許這個調用應該是'ProductVariations.setVariation browser,name,variations(name)'? – fakedad
如果第3個參數不需要使其成爲可選'Public Function setVariation(瀏覽器爲SeleniumWrapper.WebDriver,ByVal name As String,可選值爲String)'。 – HA560