请教一个随机元素获取问题

莫言 2022-3-10 506

需要获取网页上表格内一个格子的数据,但由于每次网页打开网页关键元素都会改变,通过获取子元素的方法得知不会变动是表格2下标2再下标7的位置,我现在是能通过3步获取子元素获得数据,但是公司这破电脑需要近半分钟,有没有什么别的方法也可以实现的?

Dim arrElement = ""
Dim sRet = ""
arrElement = UiElement.GetChildren({"wnd":[{"app":"chrome","cls":"Chrome_WidgetWin_1","title":"*Google Chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window","aaname":"*"}],"ctrl":[{"role":"ROLE_SYSTEM_DOCUMENT","name":"*"},{"role":"ROLE_SYSTEM_TABLE","idx":2}]},{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200})
arrElement = UiElement.GetChildren(arrElement[2],{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200})
sRet = UiElement.GetValue(arrElement[7],{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200})
TracePrint(sRet)

获取元素文本命令中间能不能添加别的关键条件直接一步到位?

最新回复 (5)
  • 回顾与展望 2022-3-10
    2
    用css-selector试试
  • 莫言 2022-3-11
    3
    由于是定制版Chrome浏览器,无法使用UIBOT扩展,如果直接用代码编写CSS选择器其编写格式是怎样的,能不能以上面条件作一个列子,谢谢了。
  • 回顾与展望 2022-3-11
    4
    这是用js代码。
    Dim sRet = ""
    Dim hWeb = ""
    hWeb = WebBrowser.BindBrowser("chrome",10000,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200})
    sRet = WebBrowser.RunJS(hWeb,'''\n\nfunction(){var a=""; a=document.querySelector("#body > div > div > div.col-lg-9.main > div > div.card-body > ul > li:nth-child(14) > div > div.subject.break-all > a").innerText ; return a\n\n}''',True,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200})
  • 莫言 2022-3-11
    5
    谢谢,学习了。
  • lhui 2022-3-11
    6
    莫言 由于是定制版Chrome浏览器,无法使用UIBOT扩展,如果直接用代码编写CSS选择器其编写格式是怎样的,能不能以上面条件作一个列子,谢谢了。
    无法使用UIBOT扩展的话,是否关于任何目标的命令都无效了?
返回
发新帖