Selenium Webdriver - 等到用户单击没有 ID 的按钮

Selenium Webdriver - Wait until user clicks button without ID

我在 Chrome 中使用带有 Excel VBA 自动化的 Selenium Webdriver,在等待用户点击按钮时我遇到了一些问题。

网页代码如下:

我尝试过使用 FindElementByCss、FindElementByID...,也尝试过使用 IsPresent、IsEnabled...,但没有任何效果。现在的小米代码如下:

t = Timer
    Do While bot.FindElementById("ui-button-text").IsPresent = True
        bot.Wait 500
        If Timer - t = 10 Then Exit Do 'Para evitar bucle infinito
    Loop

提前致谢!

根据 HTML:

ui-button-textclass 属性的值,而不是 id 属性,并且有多个 <span> 元素,其 class 属性值为 ui-button-text,具有不同的 textContent


要验证元素的 存在性 ,您可以使用以下 :

  • 带有文本的元素 Cancelar:

    • 使用 xpath:

      Do While bot.FindElementByXPath("//span[@class='ui-button-text' and text()='Cancelar']").IsPresent = True
      
  • 文本为 Repetir:

    的元素
    • 使用 xpath:

      Do While bot.FindElementByXPath("//span[@class='ui-button-text' and text()='Repetir']").IsPresent = True
      
  • 文本为 Aceptar:

    的元素
    • 使用 xpath:

      Do While bot.FindElementByXPath("//span[@class='ui-button-text' and text()='Aceptar']").IsPresent = True
      

要验证元素是否 enabled,您可以使用以下 :

  • 带有文本的元素 Cancelar:

    • 使用 xpath:

      Do While bot.FindElementByXPath("//span[@class='ui-button-text' and text()='Cancelar']").IsEnabled = True
      
  • 文本为 Repetir:

    的元素
    • 使用 xpath:

      Do While bot.FindElementByXPath("//span[@class='ui-button-text' and text()='Repetir']").IsEnabled = True
      
  • 文本为 Aceptar:

    的元素
    • 使用 xpath:

      Do While bot.FindElementByXPath("//span[@class='ui-button-text' and text()='Aceptar']").IsEnabled = True