设置首选项方法,将编译错误作为SeleniumVBA中的"Argument not optional"



我正在尝试使用带有VBA的Selenium中的SetPreference()方法使用用户详细信息登录网站。

下面是代码。

Sub setttt()
    Dim driver As New ChromeDriver    
    Set driver = New ChromeDriver
    driver.Get ("https:www.gmail.com/")    
    driver.AddArgument ("--no-sandbox")      
    driver.SetPreference ("user-data-dir=C:/Users/sagar/AppData/Local/Google/Chrome/User Data/Default")
    driver.Wait (500)
End Sub

我收到编译错误

参数不是可选的

如果我在这里遗漏了什么,请帮忙。

您的代码还有其他一些问题。首先,您需要在启动Chrome之前设置用户目录的配置文件。因此,这需要在使用 .Get() 方法之前进行设置。

此外,如果您在声明中使用Dim .. As New,则以后无需Set .. = New

最后,与其使用.SetPreference()来获取您的用户个人资料,不如将.SetProfile()persistent:=True一起使用。

我还应该提到,您不需要在配置文件中包含Default,这是自动包含的;个人偏好是我使用%USERPROFILE%而不是在文件路径中硬编码用户名。

Dim driver As New ChromeDriver
driver.SetProfile "%USERPROFILE%AppDataLocalGoogleChromeUser Data", True
driver.AddArgument "--no-sandbox"
driver.Get "https://www.gmail.com/"

对于您的特定问题,该错误代码意味着您缺少必需的参数。 .SetPreference需要两个参数:

  1. 钥匙
  2. 价值

但是你只提供了一个。

尝试删除括号

driver.AddArgument "--no-sandbox"

如果仍然没有解决,请尝试使用

driver.Get "https:www.gmail.com/"
driver.AddArgument "--no-sandbox"
driver.SetPreference "user-data-dir", "C:/Users/sagar/AppData/Local/Google/Chrome/User Data/Default"

最新更新