【问题标题】:Take screenshot using selenium VBA使用 selenium VBA 截屏
【发布时间】:2021-02-20 06:14:44
【问题描述】:

我知道如何截取网页中特定元素的屏幕截图。我尝试了几行代码来捕捉图像,但没有一个能成功捕捉到图像。 这是网站的链接https://eservices.moj.gov.kw/searchPages/searchCases.jsp 这是我的代码并尝试这部分

   .Window.Maximize 
   .Get sURL
    
    
    .Wait 2000
    '.FindElementById("txtCaseNo").SendKeys "192883660"
    'DecryptCaptcha
    Dim obj As Object
    '.FindElementByXPath("//*[@id='viewPane']/div").ScrollIntoView True
    .FindElementById("viewPane").ScrollIntoView True
    .Wait 2000
    '.FindElementByXPath("//div/img[@src='/captcha/imgCaptcha.jsp']").ScrollIntoView True
    '.FindElementByXPath("//div/img[@src='/captcha/imgCaptcha.jsp']").ScrollIntoView True
    
    
                'Set obj = .FindElementByXPath("//div/img[@src='/captcha/imgCaptcha.jsp']").TakeScreenshot(3000)
Set obj = .TakeScreenshot(3000)
        obj.SaveAs (ThisWorkbook.Path + "\Number.png")
    .Wait 2000

我只能捕获整个页面,但我只想捕获验证码的元素。

【问题讨论】:

  • 找到元素后尝试使用.ScrollIntoView().TakeScreenshot()。
  • 我试过了,但同样的问题。
  • 我认为它在 VBA 中不像在许多其他语言中那样工作。但那是凭记忆。
  • 很久以前,我试过这样的截图,以前在VBA里也可以用!!
  • geeksforgeeks.org/screenshot-element-method-selenium-python/…。但是要确保元素是可见的,并且例如你没有 cookie 栏。

标签: excel vba selenium


【解决方案1】:

这是解决我问题的工作代码

Private bot As Selenium.ChromeDriver

Sub Test()
    Dim element As Object
    Set bot = New Selenium.ChromeDriver
    With bot
        .Start
        .Get "https://eservices.moj.gov.kw/searchPages/searchCases.jsp"
        Set element = .FindElementByXPath("//*[@id='frmCaseNo']/div[2]/img")
        .ExecuteScript "arguments[0].scrollIntoView();", element
        element.TakeScreenshot(3000).SaveAs (ThisWorkbook.Path + "\Number.png")
    End With
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    相关资源
    最近更新 更多