【问题标题】:Wait until specific value appears in selenium excel vba等到 selenium excel vba 中出现特定值
【发布时间】:2019-05-22 07:23:18
【问题描述】:

我有一个带有这个 html 的元素

<span id="ContentPlaceHolder1_Label2" designtimedragdrop="1319" style="display:inline-block;color:Firebrick;font-size:Medium;font-weight:bold;width:510px;"></span>

点击页面上的保存按钮后,这部分会变成那个

<span id="ContentPlaceHolder1_Label2" designtimedragdrop="1319" style="display:inline-block;color:Firebrick;font-size:Medium;font-weight:bold;width:510px;">تم حفظ التعديل بنجاح</span>

你会注意到这个值تم حفظ التعديل بنجاح .. 之后我应该单击另一个按钮,但是当互联网连接速度很慢时会出现问题。我在保存之前点击了另一个按钮 如何等待值 تم حفظ التعديل بنجاح 的出现,然后在出现该文本后 >> 移动到另一个按钮

感谢您的帮助

【问题讨论】:

  • 在 InStr(Hyperlink.innertext, "Your_Value_Here") > 0 Then Application.Wait Now + #0:00:01# Loop 之前,这样的工作是否可行
  • Excel VBA 不是这项工作的最佳工具。如果您还没有编写代码,我建议您在现有的 HTTP 库中使用 Python 来执行您在此处尝试执行的操作。来自 Python 的结果可以放入 Excel 表或 Access 表中,您可以在其中继续您的 Excel 工作流程。
  • 非常感谢 HackSlahs。我已经用 VBA 编写了大部分代码。 @Ziggus 我仍然对 Hyperlink.innertext 这部分感到困惑,因为这不是超链接。这是一个标签,仅在单击“保存”按钮后显示该值
  • 错误信息@HackSlash!!!!无论是 python 还是其他任何语言,都没有这样的语言可以通过 HTTP 库与动态内容进行交互。在这种情况下,总是有 selenium 或 puppeteer 或任何类似在后台或前台运行的浏览器模拟器来完成这项工作。所以,我不认为 vba 是一种错误的语言。

标签: excel vba selenium-webdriver web-scraping


【解决方案1】:

我已经尝试过这个解决方案,它对我来说效果很好 这是在 Ziggus 建议的帮助下完成的

        Do Until .FindElementById("ContentPlaceHolder1_Label2").Text = "تم حفظ التعديل بنجاح"
        Application.Wait Now() + TimeValue("00:00:01")
    Loop

【讨论】:

    【解决方案2】:

    我会重写这个,因为你冒着无限循环的风险。让它成为一个定时循环并添加一个DoEvents

    Dim result As String, testElement As Object, t As Date
    Const MAX_WAIT_SEC As Long = 10 '<==adjust time here
    t = Timer
    Do
        DoEvents
        On Error Resume Next
        Set testElement = .FindElementById("ContentPlaceHolder1_Label2")
        result = testElement.Text
        If Timer - t > MAX_WAIT_SEC Then Exit Do
        On Error GoTo 0
    Loop While result <> "تم حفظ التعديل بنجاح"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 2017-04-28
      • 2011-10-23
      相关资源
      最近更新 更多