机器人框架/Selenium 不识别 xpath 元素文本()和 chrome

问题描述 投票:0回答:1

同学们!

我正在尝试获取在 chrome 开发人员工具中识别的文本,但是一旦我在 Robot Framework 中运行测试,我就会遇到错误。 使用的代码是:

${name}=    Get Text  xpath://tr[1]/td[1]/text()

Chrome dev tool

Robot Framework result

作为解决方法,我这样做了:

    ${obj_name}=            Get Text  xpath://tr[1]/td[1]
    ${obj_name_fd}=         Get Text  xpath://tr[1]/td[1]/mat-icon
    ${obj_name}=            Replace String   ${obj_name}   ${obj_name_fd}   ${EMPTY}

我确实得到了“xpath://tr[1]/td[1]”,它返回了其中的所有文本: “auto_async_blah_blah_blah”。

Tha 标签“td/”包含带有文本“file_download”的标签“mat-icon/”以及纯文本“auto_async_blah_blah_blah”(没有标签...如[img][ 2]). 所以结果我有:

“file_download auto_async_blah_blah_blah”

然后我得到“xpath://tr[1]/td[1]/mat-icon”并将其替换为 ${EMPTY},以便仅保留“auto_async_blah_blah_blah”。

python selenium-webdriver xpath google-chrome-devtools robotframework
1个回答
0
投票

这个xpath

//tr[1]/td[1]/text()

会返回一个 TextNode,因为 Selenium 期望返回一个 WebElement


解决方案

将您的命令修改为:

${name}=    Get Text  xpath://tr[1]/td[1]
© www.soinside.com 2019 - 2024. All rights reserved.