vba - 检查元素是否存在 VBA Selenium

标签 vba selenium google-chrome

寻求有关如何实现 VBA 代码以检查元素是否存在或在 VBA 中显式等待该元素的帮助。这是我正在测试的一个小示例代码。下面的代码在运行时出现错误,因为它显示“需要对象”


Dim Driver As New ChromeDriver 

Driver.get "Test website"

If Driver.IsElementPresent(By.XPath("/html/body/div[2]/div/div[5]/h3"))) Then
   Debug.Print("Yes")
Else
   Debug.Print("No")

我什至尝试将 .IsElementPresent 更改为这行代码,以便我可以测试元素的大小(如果存在),但收到“NoSuchElementError”错误

Debug.Print (browser.FindElementByXPath("/html/body/div[2]/div/div[5]/h3").Size())

最佳答案

似乎对我有用。我在您的代码中看到的唯一问题是您没有在任何地方声明 By

e.Start 不是必需的,但我还是这么做了。

enter image description here

所以我会尝试声明 By 并看看会发生什么。并且您需要将其设置为新实例,简单的类型声明将不起作用,这意味着:

仅使用 Dim By As Selenium.By 是不够的,但以下任一行:

Dim By As New Selenium.By

Dim By As Selenium.By
Set By = New Selenium.By

您收到的Object required 错误可能是由于缺少我上面所述的声明造成的。

关于vba - 检查元素是否存在 VBA Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67078625/

相关文章:

vba - 宏未显示在运行宏菜单中

javascript - 如何去除window.find Highlights的backcolor

java - driver.manage().logs().get ("browser");再次调用时不起作用

android - 如何在后台推送应用程序并使用 Selenium 从 Appium 中的同一屏幕启动

python - 如何在 XPath Python Selenium 中忽略具有特定 html 标签的文本?

css - 溢出 :hidden not working on Chrome

动态生成元素时,Javascript 'click' 到错误的元素上

vba - 在 UDF 中设置时,在需要 range.cell 的范围内选择一个单元格

vba - Excel 宏更改文本框颜色

vba - 加速 Excel 宏作为打开