我在vba中创建了一个脚本,并结合了Selenium来解析此网页的第一个标题。大多数情况下,我的脚本会timeout
抛出此错误或此错误Run-time error 21; Application defined or Object defined error
,而有时它可以完美运行。由于页面加载其内容需要太多时间,我想我遇到了加载缓慢页面的副作用之一,所以我希望禁用该页面中的图像。
我试过:
Sub TestSelenium()
Const URL$ = "https://www.marketscreener.com/"
Dim driver As Object, post As Object
Set driver = New ChromeDriver
driver.get URL
Set post = driver.FindElementByCss(".une_title")
MsgBox post.Text
driver.Quit
End Sub
当我使用 python 硒绑定时,我可以使用此选项禁用图像:
option = webdriver.ChromeOptions()
chrome_prefs = {}
option.experimental_options["prefs"] = chrome_prefs
chrome_prefs["profile.default_content_settings"] = {"images": 2}
chrome_prefs["profile.managed_default_content_settings"] = {"images": 2}
driver = webdriver.Chrome(options=option)
我知道有一些选项可以在 vba 中设置不同的首选项,但如果禁用图像,我找不到任何正确的方法来设置它们:
driver.SetPreference
driver.AddArgument
如何在 vba 硒中设置镶边首选项,让页面在没有图像的情况下快速加载?
要禁用该页面中的图像,您可以在 vba 硒绑定中设置首选项的方法如下:
driver.SetPreference "profile.managed_default_content_settings.images", 2
实现上述建议时,脚本如下所示:
Sub TestSelenium()
Const URL$ = "https://www.marketscreener.com/"
Dim driver As Object, post As Object
Set driver = New ChromeDriver
driver.SetPreference "profile.managed_default_content_settings.images", 2
driver.get URL
Set post = driver.FindElementByCss(".une_title")
MsgBox post.Text
Stop
driver.Quit
End Sub
你总是可以尝试无头运行它吗?这应该消除与图像加载相关的任何延迟。
driver.AddArgument "--headless"