如何用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
相关产品推荐
相关产品推荐

