You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用UFT+VBScript从指定DIV提取complex@authenticationtest.com文本?

解决UFT提取指定邮箱文本的方法

方法一:提取父DIV文本后通过字符串处理获取邮箱

直接获取目标DIV的innerText属性,再用VBScript字符串函数提取邮箱,无需遍历子元素,适合目标文本包含在父元素内容中的场景。

示例代码:

' 定位目标DIV元素
Set oDiv = Browser("Browser").Page("Page").WebElement("xpath:=/html/body/div/div/div[1]/div")
' 获取DIV的文本内容
sDivText = oDiv.GetROProperty("innerText")
' 提取邮箱(利用@作为标识分割字符串)
sEmail = Split(sDivText, "@")(0) & "@" & Split(Split(sDivText, "@")(1), " ")(0)
' 输出结果
MsgBox "提取到的邮箱:" & sEmail

方法二:直接用XPath定位包含邮箱的子元素

如果邮箱属于DIV下的特定子元素,可直接扩展XPath定位到该元素,直接提取文本。

示例代码:

' 定位包含@的子元素(XPath匹配所有含邮箱特征的子元素)
Set oEmailElement = Browser("Browser").Page("Page").WebElement("xpath:=/html/body/div/div/div[1]/div//*[contains(text(), '@')]")
' 提取元素文本
sEmail = oEmailElement.GetROProperty("innerText")
' 输出结果
MsgBox "提取到的邮箱:" & sEmail

方法三:修复ChildObjects遍历逻辑

若坚持使用ChildObjects,需确保遍历正确的元素类型并判断文本特征。

示例代码:

Set oDiv = Browser("Browser").Page("Page").WebElement("xpath:=/html/body/div/div/div[1]/div")
' 获取DIV下所有WebElement子元素
Set colChildElements = oDiv.ChildObjects(Description.Create())
' 遍历子元素查找含@的文本
For Each oElem In colChildElements
    sText = oElem.GetROProperty("innerText")
    If InStr(sText, "@") > 0 Then
        sEmail = Trim(sText)
        Exit For
    End If
Next
' 输出结果
MsgBox "提取到的邮箱:" & sEmail

注意事项

  • 确保UFT中Browser、Page的对象识别配置正确,避免因对象库错误导致定位失败。
  • 若页面存在动态加载,需添加等待逻辑(如WaitProperty或Sync),确保元素加载完成后再执行操作。

内容的提问来源于stack exchange,提问作者Arwa Hm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 03:47:08