如何使用 Visual Basic 脚本检查网页上是否存在某个值

How to check if a value exists on a webpage with visual basic script

我一直在寻找一种方法来检查网页的日期,如果有日期,那么我想继续循环,否则退出循环。我想尝试完成类似下面的事情(请原谅我的代码,我才刚刚开始)。然而,这似乎并不正确:

Dim DateToClick 
DateToClick = today

For i = 1 To 3
    '... some code ...

    If Browser("somebrowser").Page("somepage").Frame("someframe").WebTable("sometable").DateToClick.Exists = True 
    Then
        Browser("somebrowser").Page("somepage").Frame("someframe").WebTable("sometable").DateToClick.click 
    Else Exit For

        '... some more code ...

    End If

VB 中是否有用于检查网页值的函数?任何帮助将不胜感激。

在 Web Table 中,您可以获取日期列的列号和行号。 然后就可以使用了。 对于 Web table 的列号间谍并检查 属性 "value" 在 value 中,您将获得所有列名。尝试获取日期列的列号,然后使用以下代码。

对于迭代器 = 1 到 row_count

var_Date = Browse("").Page("").Webtable("").GetCelldata(Iterator,colnum)

if var_Date = ""

退出 下一个

2) 如果值不在 table 中,而是在页面本身可用,则使用以下代码:

2.1) 如果是 WebEDit

var_Date = Browse("").Page("").Webedit("").getRopProperty("Value")

if var_Date = ""

退出

2.2) 用于 Web 元素使用下面的代码

   var_Date= Browse("").Page("").WebElement("").getRopProperty("title")

   if var_Date = ""

退出

让我知道有关这方面的更多信息。

从您演示的代码来看,您似乎正在搜索 WebTable 对象。通常,检查一个值是否出现在此类对象中的最简单方法是使用内置的 GetRowWithCellText 方法。

myRow = Browser("").Page("").Frame("").WebTable("myTable").GetRowWithCellText("20/09/2016")

以上代码会将 myRow 设置为找到的包含特定文本的第一行的编号(在本例中为“20/09/2016”)。您可以使用此行查询其余 table 列以查找任何相关数据。正如您所指出的,如果项目存在,您希望单击该项目,我猜想 WebTable 包含链接。如果是这种情况,那么您可以简单地设置一个对象引用,然后单击它,如下所示:

Set myLink = Browser("").Page("").Frame("").WebTable("myTable").ChildItem(myRow, myCol, "Link", 0)
myLink.Click

您需要将上例中的 myCol 设置为日期所在的列号(从 1 开始索引)。它所做的是创建一个对象,该对象指向 myRowmyCol 描述的 WebTable 单元格中第一个 Link 类型的对象,然后单击它。

如果您需要任何进一步的说明,或者这不是您所需要的,请告诉我,我会尽力提供更多帮助。