SeleniumBasi c VBA Элемент TakeScreenshot вне скриншота Ошибка - PullRequest
0 голосов
/ 02 апреля 2020

Я использую последнюю версию SeleniumBasi c из https://github.com/florentbr/SeleniumBasic v2.0.9. У меня проблема с созданием снимка экрана для указанного c элемента.

Dim bot As ChromeDriver
Set bot = New ChromeDriver
bot.AddArgument "--headless"
bot.AddArgument "--disable-extensions"

bot.SetPreference "download.default_directory", "C:\temp"
bot.SetPreference "download.directory_upgrade", True
bot.SetPreference "download.prompt_for_download", False
bot.SetPreference "safebrowsing.enabled", True
bot.SetPreference "plugins.plugins_disabled", Array("Chrome PDF Viewer")

bot.Start "chrome"
bot.Get "https://mywebsite.com/somepage/1234"

'Take screenshot of a WebElement
Dim img As Image
Set img = bot.FindElementById("myGraph").TakeScreenshot() 
'TakeScreenshot method returns an Image object when used on a WebElement object.
img.SaveAs "C:\temp\mygraph.png"

Когда я запускаю это, я получаю эту ошибку - Элемент за пределами снимка экрана

Просмотр на странице примеров из репозитория GitHub я использую точно такой же код, который был предоставлен примером, и даже в примере есть та же проблема «Элемент вне скриншота».

Кто-нибудь знает, как решить эту проблему или правильно сделать скриншот веб-элемента (а не всей веб-страницы).

1 Ответ

1 голос
/ 02 апреля 2020

Элемент за пределами скриншота Ошибка означает, что элемент не отображается браузером. Вам нужно будет прокрутить страницу до элемента и затем вызвать TakeScreenshot.

Решение -

'Take screenshot of a WebElement
Dim img As Image
Set img = bot.FindElementById("myGraph").ScrollIntoView().TakeScreenshot() 
'TakeScreenshot method returns an Image object when used on a WebElement object.
img.SaveAs "C:\temp\mygraph.png"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...