selenium 搜索折叠式面板内的按钮及其部分文本Robot Framework

b91juud3  于 2022-11-29  发布在  其他
关注(0)|答案(1)|浏览(158)

几周前我就开始学习机器人框架了,在制作机器人时,我遇到了下一个问题:
我有一个公司ID的值,通过它,我需要定位网站上 accordion 内部的按钮信息, accordion 按钮列表是完全可变的,可以有一个或多个项目
对于上下文,站点的部分如下:

<div class="accordion ui fluid"><div class="item" style="background-color: white; margin: 1rem 0px; border-radius: 10px;"><div class="title accordion-title"><i aria-hidden="true" class="dropdown icon"></i>Accordion 1</div><div class="content" style="padding: 1rem; background-color: rgb(238, 238, 238);"><div class="persona-btns"><div><button class="ui primary button">Accordion1 op1</button><button class="ui primary button">Accordion1 op2</button></div></div></div></div><div class="item" style="background-color: white; margin: 1rem 0px; border-radius: 10px;"><div class="active title accordion-title"><i aria-hidden="true" class="dropdown icon"></i>Accordion2</div><div class="content active" style="padding: 1rem; background-color: rgb(238, 238, 238);"><div><button class="ui basic button" style="padding: 0px; box-shadow: 0px 0px 0px 0px; margin: 0px; text-align: inherit;">*id number of a company* *variable text(name of a company)*</button></div></div></div></div>

我试着用

Click Button    //button[.//text()=*id value*]

但在这种情况下,什么也找不到,只会出现错误
另一个选项是使用GetWebElements关键字,它带有按钮容器,列出了Webelements,但没有直接的方法使其与文本值匹配:

[<selenium.webdriver.remote.webelement.WebElement (session="3932a0dd61c3018f5ede7ca31ea475b1", element="59b4ad4d-3410-4e95-b1e5-3d02e07d1894")>]

因此我需要找到一种方法,使框架使用文本来标识元素,或者在WebElements选项中,获取html的文本并获取数据,以便使用ClickButton关键字使其可单击

plicqrtu

plicqrtu1#

看起来id value不是该按钮内任何文本节点的确切文本内容值。
因此,请尝试以下XPath表达式,而不是//button[.//text()=*id value*]

//button[contains(.,'*id value*')]

因此,整个命令行将

Click Button    //button[contains(.,'*id value*')]

相关问题