vba - 有条件地检查 VBA 中的 XPath 是否正确

标签 vba excel if-statement xpath selenium-webdriver

Postcode = driver.findElementByXPath("//div[@id='T_F2']/fieldset/div[1]/div/div[4]/span[2]").Text

CopytoClip (Postcode)

Range("b" & X).PasteSpecial xlPasteAll

我的代码使用 XPath 从网站获取邮政编码,然后将其分配给变量。这个变量被传递到我的“复制到剪辑”子程序中,该子程序负责将值复制到我的计算机剪贴板中,然后再将其粘贴到 Excel 单元格中。然而问题是我的代码将针对不同的网页多次运行上述代码,其中一些网页在指定的 XPath 中没有邮政编码。

这会导致代码崩溃,所以我希望可以用 if 语句修复这个问题。我的问题是,我可以有条件地搜索指定的XPath是否存在于网页上吗?

类似...

If driver.findElementByXPath("...").DoesNotExist

Then

   Run rest of code...

最佳答案

如果该元素不存在,则会抛出异常(或错误)。在 Java 和 C# 等语言中,异常是 NoSuchElementException。

您应该做的是使用错误处理来使您的代码在该元素不存在时运行。这里有几个链接可以帮助您指明正确的方向:

Example of this problem in Java

Example of error handling in VBA Excel

关于vba - 有条件地检查 VBA 中的 XPath 是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20124695/

相关文章:

VBA 'For Each' 所选项目

excel - 如何比较excel中不同列的多个值?

batch-file - 如何检测输入是否为引号?

sorting - 排序而不移动格式

vba - 运行时错误 7 Out of Memory 使用 vba 集合

sql-server-2008 - 在 Excel 中通过 ADODB.connection 连接到 SQL Server 2008 时出现错误 3709

c# - 是否可以从 Excel 电子表格 (VBA) 中获取 WinForms "Button"?

excel - 在Excel VBA中创建文件夹和子文件夹

电子表格 |使用日期的嵌套 IF 语句

java - 循环仅打印 else 语句