我正在尝试修复使用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