【问题标题】:vba selenium if element not visible on screen codes are not working如果元素在屏幕代码上不可见,则 vba selenium 不起作用
【发布时间】:2021-10-26 08:53:57
【问题描述】:

我想问你一个问题。我现在才明白这一点。在 vba selenium 中,如果网站已完全加载但您看不到整个网站,因此您需要向下滚动才能看到整个网站。如果在你的窗口上看到那个东西之前你看不到那个类、id 或你在代码中使用的任何参数,vba 正在应用代码。让我解释得更清楚。

我用 vba selenium chromedriver 打开了一个网站。填写表格后,vba 应单击按钮。 如果网站完全加载后,按钮在第一个网站加载时不可见,我需要向下滚动才能看到按钮,button.click 将不起作用。如果我向下滚动并查看按钮,然后只有 button.click 将起作用。

如果我改变缩放

driver.ExecuteScript "document.body.style.zoom='50%';"

那么没有任何点击命令在工作。

有人知道怎么做吗?

我想做的事情;当网站加载验证码即将到来。我给用户 10 秒的时间来解决验证码。然后自动将单击登录。如果我向下滚动查看登录按钮,它工作正常。如果我不向下滚动查看登录按钮代码,它就不起作用。

下一页我从网站上获取我想用这个代码点击的所有链接;

For Each site In sites
Debug.Print site.Attribute("href")
site.Click ("href")
sayfa.Wait 10000
sayfa.SwitchToNextWindow
sayfa.Window.Close
sayfa.SwitchToPreviousWindow
Next site

它总是出错。最后我想通了。如果我可以在不向下或向上滚动的情况下在网站上看到我将点击的链接,它的工作原理。但是如果我看不到链接代码不起作用。

我疯了:)

如果有人能提供帮助,我将不胜感激。

【问题讨论】:

    标签: vba selenium scroll visible


    【解决方案1】:

    解决了。我加了

    Site.ScrollIntoView True

    If Site.IsDisplayed Then
    driver.Wait 10000
    Site.ScrollIntoView True
    Site.Click ("href")
    driver.Wait 20000
    driver.SwitchToNextWindow
    driver.Window.Close
    driver.SwitchToPreviousWindow
    Else
    End If
    
    Next Adres
    

    【讨论】:

      猜你喜欢
      • 2013-03-02
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 2018-10-02
      • 1970-01-01
      • 2020-03-26
      相关资源
      最近更新 更多