如何使用 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 开始索引)。它所做的是创建一个对象,该对象指向 myRow
和 myCol
描述的 WebTable
单元格中第一个 Link
类型的对象,然后单击它。
如果您需要任何进一步的说明,或者这不是您所需要的,请告诉我,我会尽力提供更多帮助。
我一直在寻找一种方法来检查网页的日期,如果有日期,那么我想继续循环,否则退出循环。我想尝试完成类似下面的事情(请原谅我的代码,我才刚刚开始)。然而,这似乎并不正确:
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 开始索引)。它所做的是创建一个对象,该对象指向 myRow
和 myCol
描述的 WebTable
单元格中第一个 Link
类型的对象,然后单击它。
如果您需要任何进一步的说明,或者这不是您所需要的,请告诉我,我会尽力提供更多帮助。